gpt4 book ai didi

javascript - Bluebird promise 泄漏警告

转载 作者:行者123 更新时间:2023-12-03 06:43:31 24 4
gpt4 key购买 nike

在公共(public)图书馆spex我不久前写的,事实证明非常可靠,我一直在努力寻找原因 Bluebird警告我警告:在处理程序中创建了一个 promise ,但没有从中返回

在一次又一次尝试解决这个问题之后,我几乎放弃了,现在准备对解决方案给予最大赏金。

完整的测试应用程序:

'use strict';

var promise = require('bluebird');
var spex = require('spex')(promise);

function factory(index) {
if (index < 2) {
return promise.resolve(index);
}
}

spex.sequence(factory)
.then(data=> {
console.log("success");
})
.catch(error=> {
console.log("error");
});

完整的控制台输出:

Warning: a promise was created in a handler but was not returned from it
at Object.factory (D:\NodeJS\tests\test4.js:8:24)
at loop (D:\NodeJS\tests\node_modules\spex\lib\utils.js:69:44)
at Object.resolve (D:\NodeJS\tests\node_modules\spex\lib\utils.js:90:9)
at loop (D:\NodeJS\tests\node_modules\spex\lib\ext\sequence.js:106:28)
at next (D:\NodeJS\tests\node_modules\spex\lib\ext\sequence.js:160:25)
at $utils.resolve.call.reject.index (D:\NodeJS\tests\node_modules\spex\lib\ext\sequence.js:144:25)
at loop (D:\NodeJS\tests\node_modules\spex\lib\utils.js:86:17)
at D:\NodeJS\tests\node_modules\spex\lib\utils.js:80:25
at processImmediate [as _immediateCallback] (timers.js:383:17)
From previous event:
at loop (D:\NodeJS\tests\node_modules\spex\lib\utils.js:77:22)
at Object.resolve (D:\NodeJS\tests\node_modules\spex\lib\utils.js:90:9)
at loop (D:\NodeJS\tests\node_modules\spex\lib\ext\sequence.js:106:28)
at D:\NodeJS\tests\node_modules\spex\lib\ext\sequence.js:184:9
From previous event:
at promise (D:\NodeJS\tests\node_modules\spex\lib\index.js:96:24)
at Object.sequence (D:\NodeJS\tests\node_modules\spex\lib\ext\sequence.js:100:12)
at Object.sequence (D:\NodeJS\tests\node_modules\spex\lib\ext\sequence.js:193:29)
at Object.<anonymous> (D:\NodeJS\tests\test4.js:12:6)
at Module._compile (module.js:409:26)
at Object.Module._extensions..js (module.js:416:10)
at Module.load (module.js:343:32)
at Function.Module._load (module.js:300:12)
at Function.Module.runMain (module.js:441:10)
at startup (node.js:139:18)
at node.js:968:3

success
  • SPEX 库版本 - 任意
  • Bluebird 版本 - 任何 3.X,启用 DEBUG 模式。
  • Node.js 版本 - 任意
  • 操作系统 - 任何

最佳答案

解决方案(如建议的 here )是从不返回任何其他内容的 onFulfilled 函数中返回 null

例如:

.then(data=> {
console.log("success");
})

应该是:

.then(data=> {
console.log("success");
return null;
})

关于javascript - Bluebird promise 泄漏警告,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37846495/

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