Подтвердить что ты не робот

Axios spread() с неизвестным числом параметров обратного вызова

Мне нужно обработать неизвестное количество запросов AJAX (1 или более) с помощью axios, и я не уверен, как обрабатывать ответ. Я хочу что-то вроде:

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 вместо фактических ответов. Как я могу решить эту проблему?

4b9b3361

Ответ 1

Вам где-то нужно будет сделать фактические запросы. И тогда не используйте 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);
  …
});