Axios spread()具有未知数量的回调参数

aio*_*kos 20 javascript ajax axios

我需要使用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);
}));
Run Code Online (Sandbox Code Playgroud)

其中arguments包含axios发送的回调响应.问题是arguments包含给定的字符串URL而不是实际的响应.我该如何解决这个问题?

Ber*_*rgi 41

你某个地方需要提出实际的要求.然后不要使用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);
  …
});
Run Code Online (Sandbox Code Playgroud)