我有运行promises的代码
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 :(得分: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;
});
(我在此假设phraseUpdateSubmit
和phraseAddSubmit
修改了self.phrases
,这就是为什么我们等待这样做直到他们返回完成的承诺之后。)