【发布时间】:2019-06-21 19:59:33
【问题描述】:
如下循环触发多个api调用:
for (let item of items) {
resource.post(item).pipe(map(() => {
...
}
}
但由于异步行为,上述失败。如何处理?
【问题讨论】:
标签: angular rxjs observable
如下循环触发多个api调用:
for (let item of items) {
resource.post(item).pipe(map(() => {
...
}
}
但由于异步行为,上述失败。如何处理?
【问题讨论】:
标签: angular rxjs observable
从您的代码中可以看出使用了 RxJS,其中我们有 Zip 运算符,它将 observable 中的所有值作为数组发出,类似于
let requestObservables = []
for (let item of items) {
requestObservables.push(resource.post(item));
return zip(...requestObservables).pipe(mergeMap(res => { ....//response actions });
}
【讨论】: