如何在angular中进行多个异步并行获取调用而不等待响应
我正在尝试进行并行fetch/http.get请求,但在大约400个http get调用中,我无法异步执行该操作。 我的浏览器在发出这些请求时会冻结。 因此,我希望使调用异步,以便不等待函数完成 我尝试过使用异步,但无法使其异步如何在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") } }
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请求,你在某个地方做出了一些糟糕的设计决定,需要重新构建你的应用程序。