什么返回非异步路径?

时间:2015-10-14 08:44:22

标签: javascript angularjs

我有一个函数返回$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.
}

1 个答案:

答案 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

的别名