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));
}