gpt4 book ai didi

javascript - Promise.all 找到哪个 promise 被拒绝

转载 作者:可可西里 更新时间:2023-11-01 02:34:05 24 4
gpt4 key购买 nike

在我的代码中,我使用 Promise.all() 在某些 promise 全部实现后异步运行代码。有时,一个 promise 会失败,我不确定为什么。 我想知道哪个 promise 失败了。将回调作为第二个参数传递给 .then 方法没有多大帮助,据我所知that 一个 promise 正在拒绝,但不是哪个 promise 正在拒绝。

堆栈跟踪也无济于事,因为第一项是 Promise.all() 的错误处理程序。传递给 Promise.all()try 函数的第二个函数的第一个参数的 Error 对象的行号是只是我记录行号的行的行号。

有没有人知道有什么方法可以查明哪个 promise 被拒绝了?

最佳答案

您可以在每个 promise 上使用 onreject 处理程序:

Promise.all(promises.map((promise, i) =>
promise.catch(err => {
err.index = i;
throw err;
});
)).then(results => {
console.log("everything worked fine, I got ", results);
}, err => {
console.error("promise No "+err.index+" failed with ", err);
});

一般来说,每个拒绝原因都应该包含足够的信息来识别您需要处理(或记录)的问题。

关于javascript - Promise.all 找到哪个 promise 被拒绝,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42008227/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com