如何在Promise catch块中抛出异常?(未处理的承诺拒绝)



我有一个返回Promise的多个函数。如果出现错误,他们使用reject。但是我想处理Promise.all()调用的catch块中的错误。但是当它运行时会引起Unhandled promise rejection

function errorFunc() {
return new Promise((_, reject) {
reject('rejected in errorFunc')
})
}
Promise.all([
errorFunc(),
]).catch(reasons => {
//throw new Error('an error occured', reasons)
console.log('an error occured')
})

可以看到,console.log工作得很好,但是在抛出异常时运行失败。我已经阅读了许多关于未处理的承诺拒绝的文章和线程,但我还没有找到解决这个问题的方法。

下面是JSFiddle上失败的代码:https://jsfiddle.net/qkptbjnz/1/

如何解决这个问题?或者你有更好的错误处理建议吗?

编辑我想实现如下验证:https://jsfiddle.net/89d5nLcw/

你不应该在catch部分抛出错误,这个块是用来处理错误的。

function errorFunc() {
return new Promise((_resolve, reject) => {
reject('rejected in errorFunc');
});
}
Promise.all([
errorFunc(),
]).catch(error => {
console.log('an error occured', error);
})
就像在这里,你可以看到你在上面扔的消息。

最新更新