我有一个函数返回$timeout
返回的promise。此函数还有另一个绕过$timeout
调用的代码路径。
为了维护基于promise的API,我应该在后一条路径中返回什么?
function foo() {
if(bar) {
return $timeout(fn);
}
return ?; // I want to maintain the promise API. This code path is expected to be synchronous.
}
答案 0 :(得分:1)
用于ES6承诺使用:
function foo() {
if(bar) {
return $timeout(fn);
}
return Promise.resolve(some-value);
}
对于AngularJS,您可以使用
function foo() {
if(bar) {
return $timeout(fn);
}
return $q.resolve(some-value);
}
或
function foo() {
if(bar) {
return $timeout(fn);
}
return $q.when(some-value);
}
$ q.resolve是$ q.when
的别名