0
基本上我有两个订阅,不时发生事件。RxJs。如何等待其他可观察的,如果它最近发射
第一个是非常简单,它加载并显示一些数据:
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--->
如果您知道在observableOne $后立即触发了'observableTwo $',并且您知道它不应该如何,为什么以及何时触发?有''throttle'或'debounce()'等操作符,但当你的代码不明显时,很难给出任何建议。 – martin
@Martin,序列图更清晰吗? –
为什么不能在displayData(data)之前放置'transformDisplayedData(event);'? – martin