angular - forkjoin 在 Angular 10 替代方案中已弃用

标签 angular typescript promise rxjs

下面是我的代码:

 async getBranchDetails()  ----component  method

  {
    let banks = this.bankDataService.getBanks();
    let branchTypes = this.branchDataService.getBranchTypes();

    forkJoin([banks,branchTypes]).subscribe(results => {
              this.setFormBankData(results[0]);
              this.setFormBranchTypeData(results[1]);
            });
  }
- - 服务
 async getBanks(): Promise<IBankResponse[]> {
        return await  this.httpClient.get<Result<IBankResponse[]>>(baseUrl + '/Bank/GetBanks')
        .pipe(map( res => res.data)).toPromise();
    }
Fork join 显示已弃用。 async 是否还有其他用途?/await .谢谢。
编辑:我不知道它是否正确,但使用了 asyn/await ..我的最终代码如下
  async getBranchDetails()

  {
    let banks =  await this.bankDataService.getBanks();
    let branchTypes= await this.branchDataService.getBranchTypes();
    this.setFormBankData(banks);
    this.setFormBranchTypeData(branchTypes);
   
  }

最佳答案

您正在混合 Observables 和 Promises。要么使用 Observables 和 RxJS,要么坚持使用 Promises。
Observables 方法 (受到推崇的):

getBanks(): Observable<IBankResponse[]> {
   return this.httpClient.get(baseUrl + '/Bank/GetBanks')
     .pipe(map( res => res.data));
}
let banks = this.bankDataService.getBanks();
let branchTypes = this.branchDataService.getBranchTypes();

forkJoin([banks,branchTypes]).subscribe(results => {
  this.setFormBankData(results[0]);
  this.setFormBranchTypeData(results[1]);
});
promise 方法 :
getBanks(): Promise<IBankResponse[]> {
  return this.httpClient.get<Result<IBankResponse[]>>(baseUrl + '/Bank/GetBanks')
    .pipe(map( res => res.data)).toPromise();
}
使用 Promise 时,您可以使用 Promise.all等待所有请求完成:
let banks = this.bankDataService.getBanks();
let branchTypes = this.branchDataService.getBranchTypes();

Promise.all([banks,branchTypes]).then(results => {
  this.setFormBankData(results[0]);
  this.setFormBranchTypeData(results[1]);
});

关于angular - forkjoin 在 Angular 10 替代方案中已弃用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65353457/

相关文章:

javascript - Angular 无法获取完整 url

具有动态嵌套组件的 Angular 循环依赖项

node.js - 在NodeJS Controller 中处理多个错误检查

angular - 在构造函数或 ngOnInit 中加载异步函数

Angular 6 - 如何向 Material 表添加分页

angular - 将 firebase 响应映射到类

angular - 转到特定路线的 div 元素

javascript - 如何启用在对话框外部单击

javascript - 以 Angular 发送帖子请求不起作用

javascript - fetch response.text() 返回未决的 promise