非常感谢您提前寻求帮助。
以下是我要做的事情
function1(){
throw some error();
}
function2() {
// dosomething successfully;
}
promise.resolve()
.then()
.then(
// here i want to do promise.all and if there is any exception i want to continue with chain
promise.all(function1, function2)
.catch() // handle error here only
)
.then()
.then()
.catch()
任何人都可以帮助我如何实现这一目标。 ie.while promise.all如果有任何错误。我不想打破这个承诺链。
答案 0 :(得分:2)
尝试:
Promise.resolve().then(()=> {
return Promise.all(promisesArray).catch((err) => console.log(err))
}).then(() => console.log('continue futher'));
答案 1 :(得分:0)
如果你在.catch()
上有一个Promise.all()
并且你没有从捕获中抛出或者没有返回被拒绝的承诺,那么承诺链将继续使用{{1返回。
它完全在.catch()
之后建模,其中一个catch,除非你重新抛出,否则会停止异常。类似地,除非您从catch处理程序中重新抛出(或返回被拒绝的promise),否则try/catch
会停止拒绝。
另外,你的代码流程并不完全正确。这里.catch()
的方式不正确:
Promise.all()
您必须将函数传递给Promise.resolve().then(...).then(Promise.all(...).catch(...)).then(...)
而不是调用.then()
这是一个承诺的结果。在调用Promise.all()
时,您需要传递一系列承诺。
你可以这样做:
Promise.all()