如何仅从循环中调用最后的承诺
how to call only last promise from loop
我是新承诺,任何人都可以帮忙吗这里promise是随机解析的,全循环执行
时如何从循环中解析最后一个promise。这里假设这个.selectedValues 有 4 个值,但有时它只更新三个,有时它更新所有值(4),这是承诺的问题
var promise;
private values: Object[] = [];
_.each(this.selectedValues, (selectedValue) => {
promise = that.valueService.getValuesForName(selectedValue).then((pg) => {
values.push({
Id: pg.Id,
Name: pg.Name,
Description: pg.Description,
Policies: pg.Policies
});
});
});
if (promise !== undefined) {
promise.then(() => { // i want to call promise only once for last index
var data: Object = {
Id: that.id,
Name: name,
Description: description,
Values: values
};
that.updateEdit(data, name);
});
var promise = Promise.resolve();
private values: Object[] = [];
_.each(this.selectedValues, (selectedValue) => {
promise = promise.then(function() {
return that.valueService.getValuesForName(selectedValue);
}).then((pg) => {
values.push({
Id: pg.Id,
Name: pg.Name,
Description: pg.Description,
Policies: pg.Policies
});
});
});
if (promise !== undefined) {
promise.then(() => { // i want to call promise only once for last index
var data: Object = {
Id: that.id,
Name: name,
Description: description,
Values: values
};
that.updateEdit(data, name);
});
}
thanks a lot for replying finally $q solved my problem
var promise,promises=[];
private values: Object[] = [];
_.each(this.selectedValues, (selectedValue) => {
promise = that.valueService.getValuesForName(selectedValue).then((pg) => {
values.push({
Id: pg.Id,
Name: pg.Name,
Description: pg.Description,
Policies: pg.Policies
});
});
promises.push(promise);
});
var combinedPromise = this.$q.all(promises);
if (combinedPromise !== undefined) {
combinedPromise.then(() => { // i want to call promise only once for last index
var data: Object = {
Id: that.id,
Name: name,
Description: description,
Values: values
};
that.updateEdit(data, name);
});
相关文章:
- 另一个ajax调用中的Jquery ajax调用在for循环中没有按预期工作
- 如何在使用替代承诺时解释 ajax 调用中的错误
- 使用 Promise 在另一个函数中调用带有 Bluebird 承诺库的函数
- 在 Mocha 中,返回将被拒绝的承诺与调用 done(err) 的效果不同
- 如何仅从循环中调用最后的承诺
- 如何获得$http API 调用的承诺
- 解析云代码:如何调用异步保存的承诺
- .done() 函数在抓取本地 JSON 文件时未在 AJAX 调用返回的承诺上运行
- 编写一个可任意调用次数的curried javascript函数,该函数在最后一次函数调用时返回值
- 解析角度承诺时,请保持对调用对象的引用
- 为什么我们必须在react-native的承诺链的末尾调用' .done() ' ?
- 调用一个包含承诺链的函数
- 如何从& then"链中的最后一个承诺返回函数中的承诺
- 测试以确保函数中的承诺中的函数被调用
- 未处理的承诺拒绝:不能调用方法'push'零
- 从反复调用的承诺返回服务中获取最新数据
- 承诺调用他们的成功回调太晚了
- 反复调用一个函数,直到它的承诺被解决,或者直到设置的超时时间过去
- 如何转换jQuery $.ajax调用蓝鸟承诺没有延迟的反模式
- 多个元素上的动态绑定处理程序将只调用最后一个绑定函数