Dar*_*ney 1 javascript es6-promise fetch-api
如果我fetch()在一个Promise.all块内有多个调用,当一个调用失败时,它都会失败。太好了,我需要他们全部解决。
但是,我如何才能找到哪个实际上失败了?
在下面的代码中,catch error告诉我:
类型错误:无法获取`
如果我选择这样做,则无法构建有效的用户错误消息。
const goodUrl = 'https://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js';
const badUrl = 'https://ajax.googleapis77.com/ajax/libs/jquery/2.1.3/jquery.min.js';
Promise.all([
fetch(goodUrl),
fetch(badUrl), /* will fail */
fetch(goodUrl)
]).then(([response1, response2, response3]) => {
console.log(response1);
console.log(response2);
console.log(response3);
}).catch((err) => {
console.log(err);
});
Run Code Online (Sandbox Code Playgroud)
我寻找了重复项,这不是一个,因为示例抛出了相同的错误
您可以单独捕获它们中的每一个以及throw一些自定义错误,例如:
...
Promise.all([
fetch(goodUrl).catch(err => {
throw {url: goodUrl, err};
}),
fetch(badUrl).catch(err => {
throw {url: badUrl, err};
}),
fetch(goodUrl).catch(err => {
throw {url: goodUrl, err};
})
])
...
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3110 次 |
| 最近记录: |