我有一个要执行的操作列表,如果设置了布尔提示,则将显示一个对话框并根据其值执行一些操作。
这里的问题是for循环并行运行,并且所有操作都同时执行,但是我希望for循环同步运行,并且循环必须等待对话框关闭。有解决办法吗?
\1\t\2\t\3\t\4
答案 0 :(得分:1)
您可以将afterClosed
的Observable变为Promise,然后等待结果。示例:
async runActions() {
for (const action of Actions) {
if(action.promptRequired) {
const dialogRef = this.promptDialog.open(PromptDialogComponent, {
data: {action: action },
});
await dialogRef.afterClosed().toPromise();
}
}
const status = await this.httpService.getRequest('runAction', action)
// Do Some Action based on status
}