【发布时间】:2015-02-09 18:02:19
【问题描述】:
我正在创建一个 deferred,然后在一个涉及异步行为的函数中返回一个 Promise。
var deferred = $q.defer();
//...make use of the deferred
return deferred.promise;
我想在函数顶部添加一个快捷方式,该快捷方式将绕过异步活动并立即有效地返回已解决的承诺。我该怎么做?
例如这会是惯用的吗?
if (shouldShortcut) {
return $q.when(true);
}
【问题讨论】:
-
所以
Q没有与Promise.resolve(value)相同的值?查看文档Q(value)应该创建一个解决承诺吗?[...]If value is not a promise, returns a promise that is fulfilled with value.[...] -
@t.niese
Q确实有Q.Promise.resolve(),但$q似乎没有。 -
@StephenJames 虽然
.when()可能不是惯用用法,但它可以实现 OP 想要实现的目标 - 从非承诺值生成已解决的承诺。 -
@JLRishe,你是对的 :)
标签: javascript angularjs promise angular-promise