我需要使用axios处理未知数量的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);
}));
其中参数将包含axios发送的回调响应。问题是arguments
包含给定的字符串URL而不是实际的响应。我该如何解决这个问题?
答案 0 :(得分:39)
你某处需要提出实际请求。然后不要使用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);
…
});