这是可行的,但它是非常嵌套的,有没有办法在不嵌套的情况下做到这一点?在所有API调用完成后运行console.log('both API calls are finished!'),但用于任意数量的API调用

this.service.apiCallOne().subscribe((res) => {
  this.service.apiCallTwo().subscribe((res) => {
    console.log('both API calls are finished!')
  })
})

API调用也不相互依赖,所以它们以哪个顺序完成并不重要,我只想知道它们何时都完成了

推荐答案

你要搜索的是forkJoin:

forkJoin([this.service.apiCallOne(), this.service.apiCallTwo()])
.subscribe(([resOne, resTwo]) => {
  // this will trigger only when both calls complete.
  // please pay attention to error management, which can be tricky!
});

Angular相关问答推荐

Angular - Bootstrap 5 Carbon不工作

RFDC.CommonJS或AMD依赖项可能会导致优化救助ANGURAL PROCEMENT with ngx-charts lib

Angular 应用程序未在Azure应用程序服务中运行

Angular 显示来自文字数组的SVG路径

当包含react 性模板绑定时,NG-Bootstrap手风琴不会打开

RxJS轮询+使用退避策略重试

nx workspace angular monorepo 在创建新应用程序时抛出错误

Nz 树 Select .如何在子 node 中显示父 node 名称?

Aws 代码部署在 BeforeBlockTraffic 步骤失败,即使在更新策略后也会超时

全局异常处理

可从 Angular2 中的

如何使用ngrx和effects 订阅成功回调

Angular 没有可用于依赖类型的模块工厂:ContextElementDependency

如何在angular material中使用输入类型文件

取消订阅服务中的http observable

由router-outlet 创建时如何将css类应用于组件元素?

请求 http.GET 时发送的 Angular2 OPTIONS 方法

Angularmaterial步进器:禁用标题导航

Angular 2 - 组件内的 formControlName

Angular2material对话框自动关闭