BehaivorSubject return 空
BehaivorSubject return null
我有这个问题,我需要 behaivorSubject 在它为 null 时不要 return 值,因为结果是由第三方制作的组件获取的,如果它为 null 它会抛出一个错误.
它应该return只有当我从服务器得到响应时才相同,我把我的代码放在这里:
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();
});
}
有什么方法可以防止主题在值为空时响应一个值吗?否则,我怎样才能为这段代码提供另一种方式来帮助我呢?
谢谢!
您可以像这样过滤掉那些空值:
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));
}
我有这个问题,我需要 behaivorSubject 在它为 null 时不要 return 值,因为结果是由第三方制作的组件获取的,如果它为 null 它会抛出一个错误.
它应该return只有当我从服务器得到响应时才相同,我把我的代码放在这里:
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();
});
}
有什么方法可以防止主题在值为空时响应一个值吗?否则,我怎样才能为这段代码提供另一种方式来帮助我呢?
谢谢!
您可以像这样过滤掉那些空值:
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));
}