2016-08-02 84 views
0

我有一个运行的承诺

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); 
}; 

此代码代码,但是我想运行此代码:

self.phrases.forEach(function (phrase, index) { phrase.index = index; }) 

这个函数内返回之前。

有没有什么方法可以将它应用到函数中?

+0

备注:在上面的代码中,仅使用箭头函数或(使用最后一行要添加的)不使用'this'的函数。所以根本不需要'var self = this',只需使用'this'即可。 –

回答

2

只需添加then

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; 
}); 

(我假设这里phraseUpdateSubmitphraseAddSubmit修改self.phrases,这就是为什么我们等待这样做,直到他们返回的承诺完成后。)

相关问题