【问题标题】:Async in angular? [duplicate]角度异步? [复制]
【发布时间】:2019-09-09 00:05:36
【问题描述】:

我在我的项目中使用 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) 时,我得到了这个: '内部 getPesonData() 方法' '在getUsername()里面'

我不明白这是怎么工作的?

【问题讨论】:

  • 标题问一件事,问题完全不同
  • http.post 是异步的,你可以尝试等待并转换它toPromise()
  • 通读建议的副本。您必须了解如何在 javascript(以及扩展 typescript)中使用异步调用。一旦您了解了基础知识,您的开发生活就会变得更加轻松。

标签: angular typescript http async-await


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-07-06
    • 2021-04-23
    • 1970-01-01
    • 2020-08-23
    • 2018-07-08
    • 1970-01-01
    • 2014-05-15
    • 2019-07-15
    相关资源
    最近更新 更多