小编Ani*_*ert的帖子

如何让 async/await 等待 Observable 返回

对 Angular 相当陌生,并且在 Promises、Observables 和 async/await 方面遇到困难。

  • 我有一个功能需要当前用户详细信息来执行某些任务。
  • 为此,我编写了一个获取用户详细信息方法,该方法返回一个承诺,并且任务在“then”部分内处理。
  • fetch 方法本身调用另一个方法,该方法调用 http.get 从数据库获取用户详细信息,并返回一个 Observable。
  • 我在这里使用 async/await 函数来等待 http.get 返回。

然而,这似乎不起作用。我感觉这与 Observables/subscribe 的工作方式有关,但我无法解决它。

代码片段:

    initPage() {
      fetchCurrentUserDetails().then((user) => { //tasks dependent on current user
        //task 1
        //task 2
      });
    }

    fetchCurrentUserDetails(): Promise<any> {
      return Promise.resolve((async () => {
        let currentUser = this.global.getUser();// check if user is defined already
        let userId: string = sessionStorage.getItem('userid');

        if (currentUser == undefined) {
          let initProfile = new Promise(resolve => resolve(this.fetchDetailsFromDB(userId)));
          const profile: any = await initProfile; …
Run Code Online (Sandbox Code Playgroud)

javascript asynchronous promise observable rxjs

3
推荐指数
1
解决办法
1万
查看次数

标签 统计

asynchronous ×1

javascript ×1

observable ×1

promise ×1

rxjs ×1