簡體   English   中英

Rxjs 在繼續之前等待上一個間隔請求執行

[英]Rxjs wait for previous interval request execution before proceeding

用例:每 3 分鍾調用一次端點,以更新應用程序上某個服務的狀態。

我當前的代碼:

 interval(180000).subscribe(() => this.doRequest.pipe(catchError(() => { this.applicationFlag = false; return EMPTY; })).subscribe(result => this.applicationFlag = result));

我目前的問題是,有時上一個間隔請求還沒有完成,但下一個間隔請求也在做一個請求。

有沒有辦法標記等待上一個請求或在上一個請求尚未完成時不執行間隔?

當您在另一個subscribe中有一個subscribe時,無法通知外鏈已完成內鏈。 您必須重組您的鏈並使用諸如concatMapmergeMapswitchMap類的運算符。 例如像下面這樣:

interval(180000)
  .pipe(
    concatMap(() => this.doRequest.pipe(
      catchError(() => {
        this.applicationFlag = false;
        return EMPTY;
      }),
    ),
  )
  .subscribe();

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM