使用subscribe()方法从可观察的其他对象获取值

时间:2019-02-19 17:08:32

标签: javascript angular typescript asynchronous observable

我有一个检索值的函数,在其中我可以观察到。

this.values$ = this.apiService.retrieveIndicatorHistory(this.indicatorName, this.currentPeriod)
  .pipe(
    tap(_res => console.log(`value: ${_res}`)),
    map(
      (_res: any) => {
      this.indicatorService.changeLoadingIndicator(this.indicatorName, false);
        return _res;
      }
    ),
    catchError((err: any) => {
      this.indicatorService.changeLoadingIndicator(this.indicatorName, false);
      return of(err);
    })

在同一文件中,我有一个函数,它需要可观察对象返回的值。

 this.valuesCopy = _.cloneDeep(this.values$);

我收到此错误

error TS2322: Type 'Observable<any>' is not assignable to type 'any[]'.

我知道我应该订阅可观察的检索值(在retrieveIndicatorHistory函数内部)

我想知道TS文件中是否有this.values$ | async个等价的

1 个答案:

答案 0 :(得分:1)

请共享完整的文件和package.json。 显然这是TYPE问题。您只能在Typescript中分配相似类型的值。

但是可以在这里找到对这个问题的答案。 Type 'Observable<any>' is not assignable to type '[]'