我想离开连接2个Observables,这样我总是从ObservableA中获取值,除非ObservableB中有相应的值。在这种情况下,我想使用ObservableB中的值。这两个Observable应当联接,因此类似于SQL左联接。
通过阅读RxJS运算符树,在我看来Join将是合理的选择。我不清楚联接窗口如何工作,如何确保任何可观察的结果都可能导致联接的发生。
任何人都可以提供一个简单示例吗?
答案 0 :(得分:1)
似乎没有开箱即用的运算符。但是您可能想先Intent appIntent = new Intent(Intent.ACTION_VIEW, Uri.parse("vnd.youtube://user/channel/" + channel_id));
try {
context.startActivity(appIntent);
} catch (ActivityNotFoundException ex) { ... }
,然后再用自定义逻辑zip
来获得所需的结果:
map
答案 1 :(得分:1)
仅需先放置ObservableB的merge
即可轻松完成此操作,然后使用take(1)
立即完成。如果ObservableB为空,则它将从ObservableA发出该值。
const a$ = of(1);
const b$ = of('a');
merge(b$, a$)
.pipe(
take(1),
)
.subscribe(console.log);
实时演示:https://stackblitz.com/edit/rxjs6-demo-u5syjx?file=index.ts