首页 > 解决方案 > Angular 12:在继续之前等待获取所有数据

问题描述

在我的 ngOnInit 中,我想等待 fetchLists 的所有请求完成后再继续:

  ngOnInit(): void {
    this.fetchLists();

    this.route.params.subscribe(params => {
         this.doSomethingWithFetchedLists();
      }
    });
  }

  fetchLists(): void {
    this.httpHandlerCached.getListsA()
      .subscribe(listA => this.listA = listA);
    this.httpHandlerCached.getListsB()
      .subscribe(listB => this.listB = listB);
    this.httpHandlerCached.getListsC()
      .subscribe(listC => this.listC = listC);
  }

的请求fetchListnames()可以以任何顺序并行执行。

由于互联网连接速度较慢,我注意到列表并不总是在doSomethingWithFetchedLists被调用之前及时获取。

因此,我怎样才能等到所有列表都被提取?

另外,我不想嵌套订阅,因为它会造成混乱。

标签: angulartypescriptrxjs

解决方案


推荐阅读