[英]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 對象) 。
我可以使用運算符來實現這一點嗎?
您可以使用startWith
和delay
。
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.