【发布时间】:2018-06-01 17:33:40
【问题描述】:
我正在压缩三个 observable,三个 observable 中的每一个都有自己的“成功”回调,使用 .pipe(tap() => {...});。当所有三个可观察对象都执行时没有错误,这可以正常工作,但如果其中一个可观察对象出错,则不会执行任何点击方法。如果 observable 成功运行,我怎样才能让 tap 方法始终执行?
var request1 = Observable.create(...); //Pretend this one will fail (though request2 or request3 could also fail)
var request2 = Observable.create(...);
var request3 = Observable.create(...);
request1.pipe(tap(() => {
//Unique success callback should always run if request1 succeeds, even if request2 or request 3 fails.
}));
request2.pipe(tap(() => {
//Unique success callback should always run if request2 succeeds, even if request1 or request 3 fails.
}));
request3.pipe(tap(() => {
//Unique success callback should always run if request3 succeeds, even if request1 or request 2 fails.
}));
var observable = zip(request1, request2, request3);
observable.subscribe(() => {
//Do something when all three execute successfully
});
【问题讨论】:
-
这和角度有什么关系?
-
@Jota.Toledo 您是否因为我在示例中使用
Observable.create而不是httpClient.post而投了反对票?
标签: rxjs rxjs-pipeable-operators