2016-05-10 6 views
10

मुझे अक्षरों के साथ अज्ञात संख्या में AJAX अनुरोध (1 या अधिक) को संसाधित करने की आवश्यकता है, और मुझे यकीन नहीं है कि प्रतिक्रिया को कैसे संभाला जाए। मुझे कुछ चाहिए:अक्षरों को अज्ञात संख्या के कॉलबैक पैरामीटर के साथ फैलाएं

let urlArray = [] // unknown # of urls (1 or more) 

axios.all(urlArray) 
.then(axios.spread(function() { 
    let temp = []; 
    for (let i = 0; i < arguments[i].length; i++) 
    temp.push(arguments[i].data); 
})); 

जहां तर्कों में अक्षरों द्वारा भेजे गए कॉलबैक प्रतिक्रियाएं होंगी। समस्या यह है कि arguments में वास्तविक प्रतिक्रियाओं के बजाय दिए गए स्ट्रिंग यूआरएल शामिल हैं। मैं यह मुश्किल कैसे सुलझाऊँ?

उत्तर

20

आपको कहीं भी वास्तविक अनुरोध करने की आवश्यकता होगी। और फिर परिणामों की सरणी प्राप्त करने के लिए spread का उपयोग न करें, लेकिन केवल then:

let urlArray = [] // unknown # of urls (1 or more) 

let promiseArray = urlArray.map(url => axios.get(url)); // or whatever 
axios.all(promiseArray) 
.then(function(results) { 
    let temp = results.map(r => r.data); 
    … 
}); 
संबंधित मुद्दे