在第一次观察到发射之后发射第二次观察到的第一次发射

时间:2016-04-02 15:14:05

标签: javascript rxjs reactivex

我有2个Observable,ab。我想把它们组合起来:

a: ---x---------x-------x------|
b: ------x-x-x----x-x-x---x-x--|

o: ------x--------x-------x----|

也就是说,我希望结果Observable在发出b后直接发出a的第一个发射。

我正在使用reactivex / rxjs,但只是概念提示绰绰有余。提前谢谢!

1 个答案:

答案 0 :(得分:1)

我们可以flatMap覆盖a$ Observable并返回一个新的Observable,它会发出我们从b$获得的第一个项目。

CAVEAT:b$需要成为热门的Observable。如果这个术语不熟悉,请阅读热/冷的Observables:https://github.com/Reactive-Extensions/RxJS/blob/master/doc/gettingstarted/creating.md#cold-vs-hot-observables

const firstBAfterA$ = a$.flatMap(x => {
  return b$.first();
});