如何在angular中进行多个异步并行获取调用而不等待响应

如何在angular中进行多个异步并行获取调用而不等待响应,angular,typescript,promise,async-await,observable,Angular,Typescript,Promise,Async Await,Observable,我正在尝试进行并行fetch/http.get请求,但在大约400个http get调用中,我无法异步执行该操作。 我的浏览器在发出这些请求时会冻结。 因此,我希望使调用异步,以便不等待函数完成 我尝试过使用异步,但无法使其异步 async cacheNext(){ console.log("Caching Images") this.cacheImages(imagearray) console.log("Cached Images") } }

我正在尝试进行并行fetch/http.get请求,但在大约400个http get调用中,我无法异步执行该操作。 我的浏览器在发出这些请求时会冻结。 因此,我希望使调用异步,以便不等待函数完成

我尝试过使用异步,但无法使其异步

async cacheNext(){
      console.log("Caching Images")
      this.cacheImages(imagearray)
      console.log("Cached Images")
    }
  }

async cacheImages(imagearray){
    imagearray.forEach(img => {
      fetch(img)
    });
  }


OR 

async cacheImages(imagearray){
    imagearray.forEach(img => {
      this.http.get(img).toPromise()
    });
  }


我希望cacheImages函数运行,但cacheNext将完成

正如其他人所评论的那样,如果要进行400次http调用,则可能存在设计/体系结构问题

除此之外,要进行多个并行http调用,并获得一个包含所有结果的回调,我建议使用rxjs和forkJoin

如果您正在进行角度开发,学习并熟悉rxjs可能是您的最大兴趣,因为大部分框架都是基于rxjs构建的。在我看来,把一切都变成承诺只是额外的、不必要的工作


Rxjs擅长处理涉及多个异步调用和其他复杂异步问题的情况。根据我的经验,这些复杂的情况更难用承诺来处理。

如果你提出400个get请求,你在某个地方做出了一些糟糕的设计决定,需要重新构建你的应用程序。