在一次API调用后将延迟设置为5秒

时间:2018-09-22 08:32:07

标签: javascript angular typescript rxjs

在我的项目中,我面临一个挑战。即..我需要一个一个地调用多个API调用。在这里,我为此使用RxJS view.getViewTreeObserver().addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() { @Override public void onGlobalLayout() { // View has laid out // Remove the layout observer if you don't need it anymore view.getViewTreeObserver().removeGlobalOnLayoutListener(this); } }); 运算符。它正在预期中。但我的附加要求是,我需要为每个API调用设置10秒的延迟。我已经使用了'throttle'运算符,但是它不起作用。我在下面附加了我的代码。谁能告诉我们我在代码中做错了什么。

flatMap

谢谢

1 个答案:

答案 0 :(得分:6)

您可以使用concatMap(而不是包装API调用的flatMap)来进行一次又一次的调用,然后使用delay()来强制您想要的5s延迟:

.concatMap(progressPayload => this.apiCallsService.apiCall(url, progressPayload, 'post', false)
  .pipe(
    delay(5000)
  )
})