javascript - Promise/bluebird.js 中的错误处理

标签 javascript promise bluebird

在处理错误的上下文中,这些 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/

相关文章:

react-native - react native AsyncStorage : Accessing Value from Promise Object

javascript - 在 AngularJS 中创建一个 Q promise 函数调用阻塞

javascript - Mocha 测试在使用 promises 时超时并跳过代码,为什么?

javascript - 如何使用 Nodejs、Expressjs 和 bluebird 调用第二个 "external"函数

javascript - 谷歌隐形验证码,wordpress,ajax,保存数据

javascript - 在 IOS 设备上暂停 (html5) youtube 视频

javascript - 在 Javascript 中发现相同值时更新数组

javascript - Ajax 与其他参数序列化,

javascript - Promise 控制流 (es2015),具有复杂的参数依赖性

javascript - 什么时候 .the(success, failed) 被视为 Promise 的反模式?