gpt4 book ai didi

javascript - 如何在Mocha测试中调试 "Error: Promise rejected with no or falsy reason"?

转载 作者:行者123 更新时间:2023-11-28 06:51:43 24 4
gpt4 key购买 nike

我在 Mocha 中进行的测试因此错误而失败。

我已将 catch 语句放在每个 Promise 链的末尾,这些语句会抛出它们传递的任何错误,但从未被调用。

但是测试仍然失败,并出现以下错误:

Error: Promise rejected with no or falsy reason
at tryCatcher (node_modules/bluebird/js/main/util.js:26:23)
at Promise._settlePromiseFromHandler (node_modules/bluebird/js/main/promise.js:507:31)
at Promise._settlePromiseAt (node_modules/bluebird/js/main/promise.js:581:18)
at Promise._settlePromises (node_modules/bluebird/js/main/promise.js:697:14)
at Async._drainQueue (node_modules/bluebird/js/main/async.js:123:16)
at Async._drainQueues (node_modules/bluebird/js/main/async.js:133:10)
at Immediate.Async.drainQueues [as _onImmediate] (node_modules/bluebird/js/main/async.js:15:14)

如何找出问题到底是什么、哪个 Promise 被拒绝并获得更有意义的跟踪?

最佳答案

我找到了触发错误的原因。我必须 promise 一个流,所以我将它包装在 return new Promise...

但是,promise 具有与常规回调不同的签名。回调中首先出现错误:function(err, res) { ... }。在 Promise 中,情况正好相反:new Promise(function(resolve,reject) { ... }

我有new Promise(function(reject,resolve) { ... }。因此,当流完成并reject时,我正在调用resolve 当流发生错误时。但是,我的 resolve 实际上是 reject 函数,而我的 reject 实际上是 解决 函数,因为我颠倒了它们。

关于javascript - 如何在Mocha测试中调试 "Error: Promise rejected with no or falsy reason"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32899946/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com