【发布时间】:2018-11-21 17:47:51
【问题描述】:
我有这样的数据:
const resultData = {};
const data = {
'foo': 'https://valid/url/1',
'bar': 'https://valid/url/2',
'baz': 'https://INVALID/url/3',
};
我想向每个网址发出 GET 请求。
如果请求成功,我想将响应添加到 resultData 。
如果没有,什么也不做,也不要引发任何错误。
resultData 会是这样的:
resultData = {
'foo': { ...responseOfFoo },
'bar': { ...responseOfBar },
};
我写了一个类似下面的代码,但这并没有意识到我想要做什么。
当请求失败并返回 404 时,axios 会引发错误,此外,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,但无法正确处理请求的每个错误。
【问题讨论】:
标签: javascript promise axios