在第一次可观测发射之后的第二次可观测的第一次发射时发射

Emit on first emit of second observable after first observable emits

本文关键字:发射 第一次 可观 第二次 之后      更新时间:2023-11-24

我有两个可观测值,ab。我想这样组合它们:

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

也就是说,我希望结果Observable在b的第一次发射时发射,该第一次发射直接在a的发射之后。

我使用的是reactivex/rxjs,但仅仅一个概念提示就足够了。提前谢谢!

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

CAVEAT:b$需要是一个热的Observable。如果不熟悉这个术语,请阅读热/冷观察:https://github.com/Reactive-Extensions/RxJS/blob/master/doc/gettingstarted/creating.md#cold-与热可观测值

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