Angular 5+ 等待返回 Promise 的服务
创始人
2024-10-15 21:30:57
0

在Angular 5+中,可以使用async/await语法来等待返回Promise的服务。下面是一个示例代码:

首先,在服务中创建一个返回Promise的方法。例如,假设我们有一个UserService,其中有一个方法getUserById,它返回一个Promise:

import { Injectable } from '@angular/core';

@Injectable()
export class UserService {
  getUserById(id: number): Promise {
    return new Promise((resolve, reject) => {
      // 假设这里是从服务器获取用户信息的异步操作
      setTimeout(() => {
        const user = { id, name: 'John' };
        resolve(user);
      }, 2000);
    });
  }
}

接下来,在组件中使用该服务,并使用async/await语法等待返回的Promise:

import { Component, OnInit } from '@angular/core';
import { UserService } from './user.service';

@Component({
  selector: 'app-user',
  template: `
    

User Details

{{ user?.id }}

{{ user?.name }}

`, }) export class UserComponent implements OnInit { user: any; constructor(private userService: UserService) {} async ngOnInit() { this.user = await this.userService.getUserById(1); console.log(this.user); } }

在上述代码中,我们在ngOnInit方法中使用async/await语法来等待getUserById方法的返回值。当Promise被解决时,await会暂停代码的执行,直到Promise被解决并返回结果。

请注意,使用async/await语法需要在方法前面添加async关键字,并且只能在异步上下文中使用。在上面的代码中,我们将ngOnInit方法标记为async,以便使用await关键字。

这样,当组件初始化时,它会等待getUserById方法返回的Promise被解决,然后将结果赋值给user变量。在上述示例中,我们将user对象显示在模板中。

希望能帮到你!

相关内容

热门资讯

热点推荐!hhpkoer辅助挂... 热点推荐!hhpkoer辅助挂是真的吗,wpk模拟器,2025新版技巧(有挂神器)是由北京得hhpk...
大神推荐!we poker插件... 大神推荐!we poker插件,wejoker黑侠辅助器,AI教程(有挂技巧)1、不需要AI权限,帮...
玩家必备科普!佛手大菠萝13道... 这是一款非常优秀的菠萝辅助器免费版的特点 ia辅助检测软件,能够让你了解到菠萝辅助器免费版的特点中牌...
最新技巧!约局吧如何查看是否有... 最新技巧!约局吧如何查看是否有挂,智星德州可以透视吗,黑科技教程(有挂透视);1.约局吧如何查看是否...
科技新动态!wepoker私人... 科技新动态!wepoker私人局可以透视,wejoker辅助机器人,AI教程(有挂攻略)科技教程也叫...
重大通报!aapoker辅助器... 重大通报!aapoker辅助器怎么用,德州局透视脚本免费版下载手机版,黑科技教程(有挂攻略);原来确...
一分钟了解!wepoker有辅... 一分钟了解!wepoker有辅助功能吗,德州局脚本,AI教程(有挂教程);玩家必备必赢加哟《1367...
今日头条!wepoker透视辅... 今日头条!wepoker透视辅助下载,佛手在线大菠萝为什么都输,2025教程(有挂攻略);最新版20...
科普分享!hhpoker有作弊... 1、科普分享!hhpoker有作弊的吗,拱趴大菠萝有什么挂,揭秘教程(有挂神器)。2、拱趴大菠萝有什...
科技通报!wepoker线上大... 科技通报!wepoker线上大神,wpk辅助,详细教程(有挂软件);玩家必备必赢加哟《1367043...