我想使用forkJoin
并行运行一些请求,并合并它们的结果,如下所示。但是,当其中一个请求失败时,浏览器会自动取消其余的订阅。什么是forkJoin
的简单替代方案,可以让我并行运行请求,如果一个订阅失败,其余的订阅可以完成?
const posts = this.http.get("https://myApi.com/posts?userId=1");
const albums = this.http.get("https://myApi.com/albums?userId=1");
forkJoin([posts, albums]).subscribe((result) => {
this.print(result[0], result[1]);
});
print(res1, res2) {
const message = res1.text + res2.text;
console.log(message);
}
字符串
2条答案
按热度按时间mftmpeh81#
您可以使用
forkJoin
实现这一点,但是,您必须使用catchError
单独处理每个子Observable
的错误,以防止在发生任何错误时取消流。您可以尝试以下操作:
字符串
yhived7q2#
我会创建一个函数
字符串
然后用它来代替
forkJoin
。这样它就更可重用,并且可以进行单元测试。