在处理错误的上下文中,这些then
调用之间的区别是什么?
.then(functionThatReturnsPromise(arg))
.then(function() {
return functionThatReturnsPromise(arg);
})
在第一个示例中,如果函数functionThatReturnsPromise
抛出error
,则不会调用catch块并且bluebird打印错误;
Possibly unhandled Error: <msg>
答案 0 :(得分:2)
第一个在前一个承诺完成之前运行functionThatReturnPromise
!如果你写
blah()
.then( functionThatReturnsPromise(arg) )
就像写作
var firstPromise = blah();
var x = functionThatReturnsPromise(arg)
firstPromise.then(x);
此外,then
期望传递一个回调函数,但是你传递一个promise对象。毫无疑问,它无法正常工作。