29得票1回答
将对象绑定到 Promise.then() 参数的正确方法

我通过艰辛的方式发现,我们不能简单地将一个对象的函数传递给 Bluebird 的 then。我猜想 Bluebird 的 then 在执行一些魔法,并将传入的函数包装在一个匿名函数中。因此,我在函数上附加了一个 .bind 并且它奏效了。这是使用 bluebird 的正确方法吗?还是有更好的方...

29得票3回答
使用then和catch链接承诺

我正在使用bluebird Promise库。我想要链式调用Promise并捕获特定的Promise错误。这是我的实现:getSession(sessionId) .catch(function (err) { next(new Error('session not found')...

29得票3回答
在一个 Promise 中,then 和 finally 有什么区别?

我看到了Bluebird的finally文档,但我仍然不太理解与then相比的区别。 明确一下:我确切地知道为什么then在catch之后被调用。我希望它在捕获后被调用。这是意图。我的问题是:如果我希望代码始终被执行,而不管Promise的状态如何,那么then和finally之间有什么区别...

25得票1回答
我能否在Node的全局范围内使用bluebird实现覆盖ES6的Promise?

我想使用bluebird的Promise/A+开放标准实现,并覆盖原生ES6 Promises。 我还希望蓝鸟的实现在随后导入的所有模块中都可用,而无需在每个模块中单独引用它。 蓝鸟的开始使用页面告诉我:var Promise = require("bluebird"); 通过覆盖本地 Pro...

25得票5回答
如何使用bluebird将MongoDB原生Javascript驱动程序转换为Promise形式?

我想使用MongoDB原生JS驱动程序和bluebird promises。我该如何在这个库上使用Promise.promisifyAll()?

24得票1回答
复合赋值运算符let/const的含义是什么?

在Bluebird库的维基中有一篇文章优化杀手。在这篇文章中有一个短语: 目前无法优化: ... 包含复合let赋值的函数 包含复合const赋值的函数 什么是复合let赋值和复合const赋值? 在ECMAScript 5.1中,有复合赋值的概念,但在ECMAScript 2015中,似...

24得票5回答
使用Promise.all进行并行操作?

我认为Promise.all会并行执行传递给它的所有函数,并且不关心返回的promise完成的顺序。 但是当我编写下面的测试代码时: function Promise1(){ return new Promise(function(resolve, reject){ ...

22得票2回答
当事件触发时触发 Promise

我整个项目都使用了(Bluebird)Promises,但有一个特定的库使用了EventEmitter。 我想要实现类似于:Promise.on('connect', function() { x.doSomething(); }).then(function() { ret...

22得票4回答
在Mocha/Chai中测试被拒绝的Promise

我有一个拒绝 Promise 的类:Sync.prototype.doCall = function(verb, method, data) { var self = this; self.client = P.promisifyAll(new Client()); var r...

21得票2回答
在 Promise 被拒绝后停止运行进程

我正在使用下面的代码,一切都运行得很好,但问题在于当我遇到错误时,我希望它能停止所有其他的Promise。例如,如果chi.getCommand(val1, val2)发送一个拒绝并进入异常捕获,我希望取消chss.exe和app.getStatus(12);的Promise。我该如何做到这一...