【发布时间】:2018-09-25 11:31:28
【问题描述】:
在我的组件中,我将一组需要执行的操作组合在一起。它们执行的顺序并不重要,但如果成功,我想在最后显示。每个操作都会导致对 WebAPI 的调用。 (我很欣赏如果在一次调用中传递操作会好多更好,但这不是一种选择。
不幸的是,调用次数太多了,它实际上是在对 API 进行 DOS 处理。我试图进行管道延迟,但也许我没有把它放在正确的地方
const results: any[] = [];
this.bigArray.forEach(item =>
results.push(
this.aServiceWhichWillCallAPostMethod.doAnUpdate(item)
)
);
forkJoin(results).subscribe(
data => {
Console.log('Yeah');
},
error => {
Console.log('Oops');
},
() => {
}
);
我已经尝试在这里添加延迟
this.aServiceWhichWillCallAPostMethod.doAnUpdate(item).pipe(delay(5000))
这里
forkJoin(results).subscribe
但没有运气
【问题讨论】:
-
我看到了那个帖子,你可以看到我尝试使用 pipe.delay
-
您要等待上一个 observable 解决后再进行下一个调用吗?
-
我不需要,但如果它停止了 DOS,那么它可能是解决问题的方法
-
那不如使用 concatMap。 concatMap 不需要 observable 数组,它也使用“Concat”策略——(排队每个新的 Observable,只有在最后一个 observable 完成时才订阅新的 observable。)
标签: angular rxjs angular2-observables