0

这是我的课 ts 代码

this.product$ = <BehaviorSubject<Product>>this.route.params.switchMap(
  (params): BehaviorSubject<Product> =>
   this.productService.getProduct(params['_id'])
);

这是来自服务的代码

  getProduct(_id: string): BehaviorSubject<Product> {
    const bs = new BehaviorSubject<Product>
                   (ProductService.initializeProduct());
    if (_id !== '0') {
      this.productSub = this.databaseService.getProduct(_id).subscribe(
        product => {
        bs.next(product);
        }
      );
    }
    return bs;
  }

我声明了类型,也声明了类型,但是当我写的时候

console.log(product$.getValue)

我收到此错误:

错误类型错误:this.product$.getValue 不是函数

谢谢

4

1 回答 1

3

这不是switchMap——一般来说,RxJS——是如何工作的。运算符返回的 observable 取决于调用运算符的 observable。所述可观察对象可以实现lift返回相同类型的可观察对象实例。

您调用的结果switchMap将从this.route.paramsobservable 中提取。它不是一个BehaviorSubject也没有一个getValue方法。

于 2017-07-14T05:07:16.970 回答