Javascript 如何在$q.all返回之前运行最后一段代码?

Javascript 如何在$q.all返回之前运行最后一段代码?,javascript,angularjs,typescript,Javascript,Angularjs,Typescript,我有运行承诺的代码 phrasesUpdate = (): ng.IPromise<any> => { var self = this; var promises = []; angular.forEach(self.phrases, (ph, key) => { if (ph.statusId == Status.Dirty) { ph.createdDate ? promi

我有运行承诺的代码

phrasesUpdate = (): ng.IPromise<any> => {
    var self = this;
    var promises = [];
    angular.forEach(self.phrases, (ph, key) => {
        if (ph.statusId == Status.Dirty) {
            ph.createdDate
                ? promises.push(self.phraseUpdateSubmit(ph, key))
                : promises.push(self.phraseAddSubmit(ph, key));
        }
    });
    return self.$q.all(promises);
};
返回之前,请在该函数内部执行


是否有某种方法可以将其应用到函数中

只需添加
,然后

return self.$q.all(promises).then(result => {
    // Your last thing goes here
    return result;
});

重新编辑您的问题:我相信这就是您如何将该行集成到代码中的方式:

return self.$q.all(promises).then(result => {
    self.phrases.forEach(function (phrase, index) { phrase.index = index; });
    return result;
});

(我在这里假设
phraseUpdateSubmit
phraseAddSubmit
修改
self.phrases
,这就是为什么我们要等到承诺完成返回后再这样做的原因。)

只需添加
,然后

return self.$q.all(promises).then(result => {
    // Your last thing goes here
    return result;
});

重新编辑您的问题:我相信这就是您如何将该行集成到代码中的方式:

return self.$q.all(promises).then(result => {
    self.phrases.forEach(function (phrase, index) { phrase.index = index; });
    return result;
});

(我在这里假设
phraseUpdateSubmit
phraseAddSubmit
修改
self.phrases
,这就是为什么我们要等到承诺完成返回后才执行此操作。)

旁注:在上面的代码中,您只使用了箭头函数或(最后一行是您要添加的)不使用此
的函数。所以不需要
var self=this
总之,只需使用
。旁注:在上面的代码中,您只使用了箭头函数或(最后一行您要添加的)不使用
的函数。所以不需要
var self=this
只要使用
这个