【发布时间】:2020-10-10 02:37:24
【问题描述】:
我想做一些试错法。我有几个 observables,我想取第一个 observables 的值,它没有遇到错误。我尝试了什么:
const err1$ = throwError('err1');
const err2$ = throwError('err2');
const ok1$ = of('ok1').pipe(tap(x => console.log('hot ok1')));
const ok2$ = of('ok2').pipe(tap(x => console.log('hot ok2')));
const ok3$ = of('ok3').pipe(tap(x => console.log('hot ok3')));
onErrorResumeNext(err1$, err2$, ok1$, ok2$, ok3$).pipe(
first(),
defaultIfEmpty('all failed'),
).subscribe(console.log);
我的问题是,我不想执行ok2$ 和ok3$,因为ok1$ 很好,但是用这种方法它们变得很热。我的目标是,我只在控制台日志https://stackblitz.com/edit/rxjs-pmqbcv?file=index.ts 中看到hot ok1(来自点击)和ok1(来自订阅)
【问题讨论】:
-
您的方法适用于异步可观察对象。所以您正在寻找一种同步执行此操作的方法?
-
不,在我的实际情况下,这些是 http 调用
标签: javascript angular typescript rxjs