2016-05-10 19 views
10

Tôi cần xử lý một số yêu cầu AJAX không xác định (1 hoặc nhiều hơn) với các trục và tôi không chắc chắn cách xử lý phản hồi. Tôi muốn một cái gì đó dọc theo dòng:Axios spread() với số tham số gọi lại không rõ

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); 
})); 

nơi đối số sẽ chứa phản hồi gọi lại được gửi bởi các trục. Vấn đề là arguments chứa các chuỗi chuỗi đã cho thay vì các câu trả lời thực tế. Làm thế nào tôi có thể giải quyết vấn đề này?

Trả lời

20

Bạn cần một nơi nào đó để thực hiện các yêu cầu thực tế. Và sau đó không sử dụng spread nhưng chỉ then để nhận mảng kết quả:

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); 
    … 
}); 
Các vấn đề liên quan