首页 > 解决方案 > 角度异步?

问题描述

我在我的项目中使用 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()'

我不明白这是如何工作的?

标签: angulartypescripthttpasync-await

解决方案


async / await 是 Promise 的 ES7 语法。它与框架无关。由于 Angular 将 rxjs 用于 http 客户端,因此您不能将 async / await 用于Observable. 当然,您可以使用toPromise()将 an 转换ObservablePromise. 对于 Angular http,它运行良好,但在其他情况下,转换Observable为 aPromise是个坏主意,除非您知道自己在做什么。


推荐阅读