在 Angular 中等待订阅可以通过使用 async/await 方式来解决,这样可以避免使用回调函数等其他方式。下面给出一个简单的示例,假设我们有一个 UserService,该服务通过 HTTP 请求获取用户信息。我们希望获取到用户信息后再把它显示在界面上,代码如下:
import { Component, OnInit } from '@angular/core';
import { UserService } from 'app/user.service';
@Component({
selector: 'app-user',
templateUrl: './user.component.html',
styleUrls: ['./user.component.css']
})
export class UserComponent implements OnInit {
user: any;
constructor(private userService: UserService) { }
async ngOnInit() {
this.user = await this.userService.getUser().toPromise();
}
}
在上述代码中,我们使用 async/await 等待订阅,当 getUser() 订阅完成后,await 返回用户信息并赋值给 user 属性,从而可以在 HTML 中显示用户信息。