2016-08-02 91 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,這就是爲什麼我們等待這樣做,直到他們返回的承諾完成後。)

相關問題