【发布时间】:2021-03-21 08:47:52
【问题描述】:
我在 Angular 中有一个 asnyc 函数,它在循环中完成所有等待调用之前退出。
它目前只运行 1 个等待调用。有什么想法吗?
async rtClick() {
for (let index = 0; index < this.mulObj.value.length; index++) {
const selectedRT = this.mulObj.value[index];
await this.runRTSub(selectedRT);
console.log(index);
}
console.log('spot 2')
}
在上面的示例中,即使数组中有 5 个对象,我也会在第一次等待完成后立即在控制台记录“spot 2”。我希望所有 5 个等待在“点 2”出现之前循环并完成。
下面是 runRTSub 调用的内容。
runRTSub(selectedRT) {
return new Promise((resolve) => {
this.DbService.getRTSP(selectedRT).subscribe(rtsp_results => this.rtsp_results = rtsp_results,
(err) => {
console.log('ERROR: ' + JSON.stringify(err));
},() => {
resolve(1);
});
});
}
【问题讨论】:
-
@NicholasTower -- 我添加了这个细节。我的问题是因为承诺吗?对不起,如果愚蠢的问题。
标签: angular typescript loops for-loop async-await