Angular RxJS Observable 加载错误

Angular RxJS Observable loading error

我已经声明了一个可观察变量

workOrders: Observable<IWorkOrders[]>;

然后我以这种方式加载那个 observable。

  this.bs.getWorkOrders()
  .pipe(map(data:IWorkOrders[]) => this.workOrders = data)),
    .subscribe((data: IWorkOrders[]) =>
      // this.workOrders = data;
      this.woSubject.next(data),
  );

但是当我这样做时,我看到 this.workOrders = 数据线下有一条红色波浪线。而且当我悬停时它说 [ts] 类型 'IWorkOrders[]' 不可分配给类型 'Observable'

如错误消息所述 - workOrders 的类型为 Observable<IWorkOrders[]>,而 data 变量的类型为 IWorkOrders[]。在您的情况下,您试图将两种不兼容的类型分配给彼此。在 map 函数中,您接收到 Observable 的值,它的类型是 IWorkOrders[].

您需要做的是将 workOrders 声明为 IWorkOrders[] 而不是 Observable 类型:

workOrders: IWorkOrders[];

P.S。你有一个额外的尾随逗号 .pipe(map(data:IWorkOrders[]) => this.workOrders = data)), <--

workOrders=this.bs.getWorkOrders(); 会起作用

workOrdersObservable 类型。 data 属于 IWorkOrders[] 类型 由于这些是 2 种不同的类型,因此您会收到错误。您不能分配 IWorkOrders[] to Observable.