具有路由器事件的异步管道值始终为空

Async pipe value with router events always null

我在尝试访问模板中的异步 属性 时遇到了一个非常简单的问题 - 返回的值始终为 null。方法如下:

someAsyncProperty():Observable<string> {
    return this._router.events
        .filter(event => event instanceof NavigationEnd)
        .map(event => 'my value');
}

在我的模板中,{{someAsyncProperty() | async}} 不呈现任何内容。

在我的模板中,{{(someAsyncProperty() | async) | json}} 呈现 null。

如果我将异步方法更改为:

someAsyncProperty():Observable<string> {
    return Observable.of(true)
        .map(event => 'my value');
}

...模板中的值正确呈现。

我不确定这里的问题是什么。无法使用带有路由器事件的 async 管道,还是有其他方法可以做到这一点?

someAsyncProp$:Observable<string>;
constructor() {
  this.someAsyncProp$ = this.someAsyncProperty();
}
{{someAsyncProp$ | async}}

否则每次更改检测运行时都会创建一个新订阅(someAsyncProperty() 调用)。