簡體   English   中英

Angular Rxjs:使用異步管道連續延遲發出所有合並的可觀察對象

[英]Angular Rxjs: emit all merged observables with delay continuously with async pipe

大家好,我正在嘗試在 html 文件中使用數據對象,並且我正在使用異步管道和一個主題來發出 id 並獲得服務器響應。
這是我的代碼:

     logDetails$: Observable<LogDetails>;
     getDetails$ = new Subject<string>();

     this.logDetails$ = this.getDetails$.pipe(
        map(id => ApiRoutes.fileLogDetailsApiRoute.replace(":id", id)),
        switchMap(apiRoute => this.http.get<LogDetails>(apiRoute))
    );

我在我的視圖中使用異步管道來使用訂閱結果。

*ngIf="logDetails$ | async; let details"

現在我想要這種行為:我從多個位置發出帶有 id 的getDetails$
然后我需要在服務器調用結果的值之前將其發送到視圖,然后在一些延遲后發送服務器響應(LogDetails 對象)

  1. 發送結果的默認值
  2. 延遲
  3. 發送服務器響應

我可以使用運算符來實現這一點嗎?

您可以使用startWithdelay

this.logDetails$ = this.getDetails$.pipe(
  map(id => ApiRoutes.fileLogDetailsApiRoute.replace(":id", id)),
  switchMap(apiRoute => this.http.get<LogDetails>(apiRoute).pipe(
    delay(1000),
    startWith(null)
  )),
);

暫無
暫無

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

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