【发布时间】:2019-12-02 10:58:00
【问题描述】:
我有一个我想要处理的对象列表。该对象被传递给一个 Promise 函数,该函数执行此操作并解析回来。该过程可以是即时的,也可以不是即时的,具体取决于先前缓存的值。如果已经有计算值,它将立即解决。否则,它将计算。现在我遇到的问题是在计算第一个对象的状态之前将下一个对象传递给承诺:
let people = [
{groupId: 1, name: 'Jessica Coleman', status: 'Unknown', id:1}
{groupId: 1, name: 'Eric Tomson', status: 'Unknown', id:2}
{groupId: 1, name: 'Samuel Bell', status: 'Unknown', id:3}
];
现在我想绝对等待承诺在循环期间解决,即使承诺需要一分钟来计算这个实例。同一组的所有人都具有相同的地位。因此,promise 检查是否已经计算了一个组。如果是,则将其退回。否则,它会计算。这就是问题所在。杰西卡1还没说完,其他人就过去了。
people.map(function(person) {
// return the promise to array
this.calculatorService
.getStatus(person)
.then(function(res) {
person.status = res;
});
});
【问题讨论】:
-
这能回答你的问题吗? Use async await with Array.map
标签: javascript angular typescript