864得票24回答
如何将现有的回调API转换为Promises?

我想使用Promise,但我手头有一个回调API的格式,如下: 1. DOM加载或其他一次性事件:window.onload; // set to callback ... window.onload = function() { }; 2. 普通回调函数:function request...

751得票17回答
我如何在.then()链中访问先前的promise结果?

我已经重构了我的代码,使用了Promise,并建立了一个美妙的长扁平化 Promise 链,由多个.then()回调组成。最终我想返回一些复合值,并需要访问多个中间 Promise 结果。但是序列中间的解析值在最后一个回调中不在作用域内,该如何访问它们?function getExample(...

650得票3回答
什么是显式承诺构造反模式,如何避免它?

我正在编写一段看起来像这样的代码:function getStuffDone(param) { | function getStuffDone(param) { var d = Q.defer(); /* or $q.defer */ | return ne...

507得票10回答
承诺不就是回调函数吗?

我已经开发JavaScript几年了,但我完全不明白承诺(Promise)的热度是怎么回事。 似乎我所做的一切都只是改变: api(function(result){ api2(function(result2){ api3(function(result3){ ...

504得票19回答
如何检查一个对象是否是 Promise?

无论是 ES6 的 Promise,还是 Bluebird 的 Promise、Q 的 Promise 等等。 我该如何测试一个给定的对象是否为 Promise?

253得票1回答
现在我们已经有了ES6的Promise,还有使用Q或BlueBird等Promise库的理由吗?

在Node.js原生支持Promise之后,是否仍有使用Q或BlueBird等库的理由? 例如,如果您正在启动一个新项目,并且假设在此项目中您没有使用这些库的任何依赖项,那么我们可以说真的没有使用这些库的理由了吗?

234得票7回答
何时使用.then(success, fail)被认为是Promise中的反模式?

我查看了 bluebird 的 Promise FAQ,其中提到 .then(success, fail) 是一种反模式。但我不太明白它对于 try 和 catch 的解释。some_promise_call() .then(function(res) { logger.log(res) },...

177得票10回答
如何使用Bluebird将Node的child_process.exec和child_process.execFile函数转换为Promises?

我正在使用 Node.js 下的 Bluebird Promise 库,它非常好用!但我有一个问题: 如果你看一下 Node 的 child_process.exec 和 child_process.execFile 文档,你会发现这两个函数都返回了一个 ChildProcess 对象。 ...

177得票3回答
将catch放置在THEN之前和之后的位置问题

我不太理解在嵌套的Promise中,将.catch放置在then之前和之后的区别。 方案1:test1Async(10).then((res) => { return test2Async(22) .then((res) => { return test3...

169得票4回答
蓝鸟的util.toFastProperties函数如何使对象的属性变得“快速”?

在Bluebird的util.js文件中,它有以下函数:function toFastProperties(obj) { /*jshint -W027*/ function f() {} f.prototype = obj; ASSERT("%HasFastPr...