我有這個問題,我需要 behaivorSubject 在它為 null 時不回傳該值,因為結果是由第三方制作的組件抓取的,如果為 null 則會引發錯誤。
只有當我從服務器獲得回應時,它才應該回傳相同的結果,我將代碼留在這里:
getCarList(params): Observable<CarListGrid> {
if (this.carListSubject$ === undefined) {
this.carListSubject$ = new BehaviorSubject<CarListGrid>(null);
this.refetchCarList(params);
}
return this.carListSubject$.asObservable();
}
refetchCarList(gridParams) {
const subscription = this.http.post<CarListGrid>(this.baseUrl 'GetCar', {gridParams} ,httpOptions).pipe(map(data => this.setDefaultValuesToCar(data))).subscribe(
(response) => {
this.carListSubject$.next(response);
subscription.unsubscribe();
});
}
有什么方法可以防止主題在值為空時回應值?或者,我怎樣才能給這個代碼另一種方式來幫助我呢?
謝謝!
uj5u.com熱心網友回復:
您可以過濾掉這些空值,如下所示:
getCarList(params): Observable<CarListGrid> {
if (this.carListSubject$ === undefined) {
this.carListSubject$ = new BehaviorSubject<CarListGrid>(null);
this.refetchCarList(params);
}
return this.carListSubject$
.asObservable()
.pipe(filter((value) => value !== null));
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/479658.html
上一篇:Angular:等待處理ActivatedRoute?
下一篇:如何將子組件顯示到模態框中?角
