У меня есть такие данные:
const resultData = {};
const data = {
'foo': 'https://valid/url/1',
'bar': 'https://valid/url/2',
'baz': 'https://INVALID/url/3',
};
, и я хотел бы сделать запрос GET для каждого URL.
Если запрос завершится успешно, я хочу добавить ответ к resultData
.Если нет, ничего не делайте и не вызывайте ошибок.
resultData
будет выглядеть так:
resultData = {
'foo': { ...responseOfFoo },
'bar': { ...responseOfBar },
};
Я написал код, подобный приведенному ниже, но я не понимаю, чего я хочуделать.
axios выдает ошибку, когда запрос завершается неудачно с 404, и, кроме того, async / await, похоже, не работает правильно.
import _ from 'lodash';
return new Promise((resolve, reject) => {
const resultData = {};
_.forEach(data, async (url, key) => {
const res = await axios.get(url).catch(null);
resultData[key] = res.data;
});
resolve(resultData);
});
Что с этим не так?
Я также пытался использовать axios.all
или Promise.all
, но не смог правильно обработать каждую ошибку запроса.