如何在$q.all返回之前运行最后一段代码
How can I run a final piece of code before a $q.all returns?
我有运行promise 的代码
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; })
返回之前在此函数内部。
有什么方法可以把它放进函数中吗?
只需添加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
,这就是为什么我们要等到它们返回的承诺完成后再这样做。)
相关文章:
- jQuery:在for循环中运行youtube视频,播放最后一个视频
- JavaScript只有在最后一次被调用时才运行函数
- ..的Javascript..循环中的对象没有在最后一个属性上运行
- 仅通过最后一行运行Google脚本
- 如何告诉Jquery只运行最后一个mouseenter事件
- 最后定义的原型函数始终在对象初始化时运行
- 插入到 sqlite 仅运行最后一条语句
- 立即调用的函数表达式运行最后定义的函数.为什么?
- 只有在最后一项完成后,才能运行jQuery slideDown complete函数
- 在最后一个键up后1.6秒运行js
- 如何在Javascript中跟踪应用程序的最后运行日期
- JavaScript在页面上运行,但最后删除了自己的DOM节点.我该如何测试它做了什么
- 如何让Javascript在使用Javascript的页面中的最后一个进程中运行
- 如何在$q.all返回之前运行最后一段代码
- onClick的Javascript 2函数只运行最后一个
- 为什么XMLHTTPRequest在ajax循环的最后一次迭代中运行
- 它是当前运行的脚本的最后一个“脚本”元素吗?
- 如何运行代码后,最后一篇文章已经完成
- 如何在html5读取文件方法的最后迭代上运行代码
- JavaScript只运行最后一个函数