[英]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
時,無法通知外鏈已完成內鏈。 您必須重組您的鏈並使用諸如concatMap
、 mergeMap
或switchMap
類的運算符。 例如像下面這樣:
interval(180000)
.pipe(
concatMap(() => this.doRequest.pipe(
catchError(() => {
this.applicationFlag = false;
return EMPTY;
}),
),
)
.subscribe();
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.