angular - 角度异步?
问题描述
我在我的项目中使用 Angular 6,问题如下所示:
getPersonData() : personData {
this.user = {
username : getUsername()
}
console.log('Inside getPersonData() method');
}
getUsername(){
var username;
this.http.post('apiname', data).subcrible( res =>{
username = res.username;
});
console.log('Inside getUserName() ');
return username;
}
当调用 getPersonData( enter code here
) 时,我得到了这个:'Inside getPesonData() method''Inside getUsername()'
我不明白这是如何工作的?
解决方案
async / await 是 Promise 的 ES7 语法。它与框架无关。由于 Angular 将 rxjs 用于 http 客户端,因此您不能将 async / await 用于Observable
. 当然,您可以使用toPromise()
将 an 转换Observable
为Promise
. 对于 Angular http,它运行良好,但在其他情况下,转换Observable
为 aPromise
是个坏主意,除非您知道自己在做什么。
推荐阅读
- operating-system - 删除一个并创建新的 MBR 分区排列
- ansible - ansible如何从另一个角色加载变量,而不执行它?
- java - 尝试在 Maven 插件中执行 jar
- javascript - Javascript:改进具有嵌套 foreach 循环的代码
- java - 如何知道使用 JavaParser 读取或修改变量
- ruby-on-rails - 从参数化查询中删除引号
- linux - 不同端口上的 softROCE RDMA 相同设备
- spring-webflux - 带有 Spring 反应式 redis StreamReceiver 的随机 RedisConnectionException
- java - Mongo Repository 在嵌套的 HashMap 中按值查找对象
- android - 如何将在 Flutter 上查看的 pdf 文件保存到设备的本地存储中?