在处理错误的上下文中,这些 then
调用有什么区别?
.then(functionThatReturnsPromise(arg))
.then(function() {
return functionThatReturnsPromise(arg);
})
在第一个示例中,如果函数 functionThatReturnsPromise
抛出 error
,则不会调用 catch block ,并且 bluebird 会打印错误;
Possibly unhandled Error: <msg>
最佳答案
第一个在前一个 promise 完成之前运行functionThatReturnPromise
!如果你写
blah()
.then( functionThatReturnsPromise(arg) )
就像写作
var firstPromise = blah();
var x = functionThatReturnsPromise(arg)
firstPromise.then(x);
此外,then
期望传递一个回调函数,但您传递的是一个 Promise 对象。它无法正常工作也就不足为奇了。
关于javascript - Promise/bluebird.js 中的错误处理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24337327/