[英]behaviour subject and observable in Angular8
我收到了 3 次調用的 rest 服務數據調用。 我需要創建一個數據服務來減少一次調用,以便它保留一個本地副本。如果尚未填充副本,它會點擊 api 來獲取它們。 它應該只執行一次。 因此,需要一個指示 get 調用狀態的布爾值。 如果尚未調用獲取數據,請切換布爾值並獲取數據。 我知道如果組件訂閱 observable 可以做到這一點,並且當數據服務有數據時,它將通過 BehaviorSubject 提供它。 但是不確定如何實現它,因為我沒有使用可觀察對象和行為主題。 對此的任何指導表示贊賞。 謝謝。
這是我的示例 stackblitz https://stackblitz.com/edit/angular-sqxp9e?file=src%2Fapp%2Fnotifications-data.service.ts
我創建了如下數據服務:
private notificationsSubject = new BehaviorSubject<any>([]);
private loaded = false;
public notifications$ = this.notificationsSubject.asObservable();
public data = [];
constructor(private restSvc: RestService) { }
getNotification$(): void {
if (!this.loaded) {
this.loaded = true;
this.restSvc.getData("/api/app/getnotifs").subscribe((data: any) => {
this.data = data;
this.notificationsSubject.next(this.data);
});
}
else {
this.notificationsSubject.next(this.data);
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.