当数组中的某个函数没有返回promise时,我可以使用$ q.all吗?

时间:2016-04-29 18:03:39

标签: javascript typescript

我有这个功能,我想回复一个承诺:

homeWordsResolve = (): ng.IPromise<any> => {
    var self = this;
    return this.$q.all([
        self.ens.getUserProfile(),
        self.wos.getWordsOrderBy(),
        self.wos.getPos()
    ]);
}

然而,其中一个函数是同步的,只返回一个void。

getWordsOrderBy = (): void => {
    this.wordsOrderBy = this.ens.getOrderBy(EnumGetOrderBy.Word)
}

有没有什么方法可以继续使用$ q.all并且可能修改getWordsOrderBy以返回一个承诺?

1 个答案:

答案 0 :(得分:2)

是的,你可以,$q.all接受一系列承诺或价值观。

$q.all([
  $q.resolve(1),
  $q.resolve(2),
  3
])
.then(function(results) {
  console.log(results);
});

将打印1, 2, 3