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