RxJS运算符用于左连接2个可观察对象

时间:2018-06-22 15:56:14

标签: javascript functional-programming rxjs reactive-programming

我想离开连接2个Observables,这样我总是从ObservableA中获取值,除非ObservableB中有相应的值。在这种情况下,我想使用ObservableB中的值。这两个Observable应当联接,因此类似于SQL左联接。

通过阅读RxJS运算符树,在我看来Join将是合理的选择。我不清楚联接窗口如何工作,如何确保任何可观察的结果都可能导致联接的发生。

任何人都可以提供一个简单示例吗?

2 个答案:

答案 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