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