javascript - RxJS:即使一个或多个失败,如何等待几个 observable
问题描述
我使用zip
运算符等待三个可观察对象并同时处理结果:
Observable
.zip(
this.sapService.getProductSpareParts(this.identForm.get('ident').value),
this.mediacacheService.getMediaItemsByIdent(this.identForm.get('ident').value),
this.mediacacheService.getMetaInfos(this.identForm.get('ident').value)
)
.subscribe((results: any) => {
// do stuff
});
这三个 observables 中的一个或多个可能失败并返回 500 结果。在这种情况下,所有其他待处理的 observables 将被取消。
如何忽略错误的 observables,不取消它们并等待剩余的 observables 完成,以处理成功的 observables 的结果?
解决方案
看看下面的解决方案,我认为这将解决您的问题
var source = Rx.Observable.onErrorResumeNext(
Rx.Observable.just(42),
Rx.Observable.throw(new Error()),
Rx.Observable.just(56),
Rx.Observable.throw(new Error()),
Rx.Observable.just(78)
);
var subscription = source.subscribe(
data => console.log(data)
);
结果
// => 42
// => 56
// => 78
推荐阅读
- oauth - How to create a OAuth token with gitlab for composer
- vba - 打开一个名称每天都在变化的文件
- python - 3d 网格上描述符的着色函数
- java - 下载二进制文件抛出 org.jvnet.mimepull.MIMEParsingException: java.io.IOException: Stream Closed
- scala - 如何从scala中的列表中创建一个元组?
- sql - 复杂的 JOIN 查询 SQL Server
- javascript - Cocos2djs 中的 FPS 下降
- matlab - 将文本文件中的整数存储到变量数组中
- ios - 使用手表和 iPhone 的蓝牙连接的距离
- python - Pytest、setup_method 和类级模拟