管道完成后如何获取值?

How do I get a value after pipe complete?

例如。 我想要 Angular 自动更新值(使用 observable)。

// in test.component.ts
ngOnInit(){
  let i = 0;
  this.test = new Observalble<any>((ob) => {
    setInterVal(() => {
      ob.next({
        i: i++,
      })
    },1000);
  });
}

<!-- in test.component.html -->
<p>{{ (test | async).i }}</p> <!-- not work -->
<p>{{ (test.i | async) }}</p> <!-- not work -->

您需要先更正拼写错误:setInterVal 应为 setInterval(小写 v),Observalble 应为 Observable

然后,您需要添加空安全运算符,因为 test 的异步结果将开始未定义,如果您尝试从 i 属性 获取 属性 会导致错误一个未定义的值。通过添加 ?,如果 test | async 不为空,它只会尝试读取 i

// in test.component.ts
ngOnInit(){
  let i = 0;
  this.test = new Observable<any>((ob) => {
    setInterval(() => {
      ob.next({
        i: i++,
      })
    },1000);
  });
}

<!-- in test.component.html -->
<p>{{ (test | async)?.i }}</p> <!-- not work -->

Here is a StackBlitz demo