javascript - 为什么Angular异步管道不适用于返回Promise的getter
问题描述
组件 .ts
get user(): Promise<string> {
//method returns the promise
return getCurrentUser();
}
组件 .html
<p>{{ user | async }}</p>
上面的表达式在 html 中只返回一个空字符串
为什么?有什么问题?
解决方案
您应该执行以下操作:
在 ts 类中设置一个变量
public user: User;
在 ngOnInit 或其他时刻调用获取该用户的函数:
async fetchUser(): void {
this.user = await getCurrentUser();
}
在 html 中只需要以下内容:
<p>{{ user }}</p>
由于变量是反应性的,一旦函数更新了用户的值,html 中的值就会被更新。
你也可以使用 observable 作为官方文档使用的。(您在问题中得到的评论)
推荐阅读
- node.js - 为什么 PM2 正在观察但没有捕捉到代码的变化?
- azure - VSTS Rest API 从 Azure 逻辑应用程序失败,但从 Postman 成功
- swift - 为什么子协议不符合其父协议?
- python - 获得传感器读数的良好时间戳
- youtube - 我可以在我的 Android 应用上显示公开的 youtube 直播视频吗?
- angularjs - IE - Angular 的 json 响应包含删除其他字符的 unicode 字符。无效的 JSON
- java - 将按钮和文本字段从另一个类导入到主类
- ansible - 如何在ansible中迭代库存组?
- javascript - 如何从多个图像访问多个 alt 属性值?
- symfony - Symfony 4 / Webpack Encore:jQuery 不起作用