如何使用异步管道从 observable 打印值

How to print value from observavle using async pipe

我正在尝试使用异步管道从我的可观察对象 class 中打印值,但到目前为止还没有成功。 我有以下功能,returns 可从我的 API 调用中观察到 class:

private getRecordType() {
   return this.getMyData().pipe(
      tap((res: Data) => {
         return res.recordType;
      }),
   );
}

然后我设置为 this.recordType getRecordType() 函数 returns:

的值
this.recordType = this.getRecordType();
console.log(this.recordType, 'RECORD_TYPE');
// returns Observable class

然后我尝试在我的模板中打印它:

<b>{{ recordType | async }}</b>

然而这在我的模板中只有 returns [object Object]。 关于我做错了什么有什么建议吗?

提前致谢。

tap 不会改变 Observable 的发射,所以你的 tap 在这种情况下什么都不做。您要查找的运算符(用于修改 Observable 的发射)是 map.

tap 运算符允许您对您的可观察对象执行 side-effects(参见 the documentation)。将 res.recordType 返回到 tap 运算符中不会执行您想要的操作

我建议你使用map operator