【发布时间】:2014-05-22 17:16:30
【问题描述】:
我不是在询问承诺的履行价值。
这里我问的是then()函数的返回值。我关心的具体事情是根据条件构建承诺列表,例如:
function operationThatReturnsPromise() {
var p = q.resolve({ prop1 : value1 })
.then(function(ctx) {.... return ctx;});
if (condition1) {
// which usage is required or preferred?
// 1. p = p.then() ?
p = p.then(function(ctx) { ..... return ctx; } );
// 2. p.then() ?
p.then(function(ctx) {... return ctx; });
}
return p;
}
它们是等价的吗? doc at Mozilla 状态
返回一个新的 Promise,其状态取决于该 Promise 和提供的回调函数。
这似乎表明前者(选项 1)是首选。有什么指导吗?
【问题讨论】:
-
我看到你的背景是.NET,把
.then想象成Task的.ContinueWith,你最终会返回一个任务。