首页 > 解决方案 > 为什么Angular异步管道不适用于返回Promise的getter

问题描述

组件 .ts

get user(): Promise<string> {
 //method returns the promise
return getCurrentUser();
  }

组件 .html

<p>{{ user | async }}</p>

上面的表达式在 html 中只返回一个空字符串

为什么?有什么问题?

标签: javascriptangular

解决方案


您应该执行以下操作:

在 ts 类中设置一个变量

public user: User;

在 ngOnInit 或其他时刻调用获取该用户的函数:

async fetchUser(): void {
 this.user = await getCurrentUser();
}

在 html 中只需要以下内容: <p>{{ user }}</p>

由于变量是反应性的,一旦函数更新了用户的值,html 中的值就会被更新。

你也可以使用 observable 作为官方文档使用的。(您在问题中得到的评论)


推荐阅读