处方药。如果最近触发,如何等待其他可观察对象

RxJs. How to wait for other observable if it fired recently

基本上我有两个不时触发事件的订阅。

第一个非常简单,它加载并显示一些数据:

observableOne$.switchMap(event => {
  return loadData(event);
}).subscribe(data => {
  displayData(data);
});

第二次转换显示数据,转换只做一次:

observableTwo$.subscribe(event => {
  transformDisplayedData(event);
});

我面临的问题是,如果第二个事件在第一个事件之后立即触发,那么转换就会丢失。而且我不能重新申请,这是一次性的。

如果 observableOne$ 最近被解雇了,有没有办法推迟转型?

时序如下所示:

One      : -a----------a----->
Two      : -----b------b----->
Display  : ---a----------a---> // lag is due to async data loading
Transform: -----b--------b--->

编辑

我创建了一个带有演示的fiddle。实际的时间顺序可以这样写:

PageClick      : -x----------x----->
HighlightClick : -----x------x----->
DataRender     : ---x----------x--->
DataHighlight  : -----x------x----->

当 PageClick 和 HighlightClick 一起使用时,数据会突出显示并稍后呈现。但我想推迟突出显示,因此需要时间顺序:

PageClick      : -x----------x----->
HighlightClick : -----x------x----->
DataRender     : ---x----------x--->
DataHighlight  : -----x--------x--->

如果有人对此感兴趣,可以通过引入中间流来完成,事件 start loadingend loading 通过中间流传递。有关详细信息,请参阅此