0
我有一個類似事件的流,並希望通過在時間上接近來拆分:每個事件跟在前一個事件中,比如說少於5分鐘,必須進入一個鏈中我可以標記這條鏈的開始和結束。所有的實時,沒有緩衝。如何通過暫停來拆分流
像這樣(-
表示暫停小於5分鐘,=
表示5分鐘的時間跨度):
a - a - a = a - a - a =-- a - a - a
B EB E B
我有一個類似事件的流,並希望通過在時間上接近來拆分:每個事件跟在前一個事件中,比如說少於5分鐘,必須進入一個鏈中我可以標記這條鏈的開始和結束。所有的實時,沒有緩衝。如何通過暫停來拆分流
像這樣(-
表示暫停小於5分鐘,=
表示5分鐘的時間跨度):
a - a - a = a - a - a =-- a - a - a
B EB E B
你可以利用windowWhen
+ timeoutWith
運營商來實現:
let sharedSource = source.share();
sharedSource.windowWhen(() =>
sharedSource.timeoutWith(5 * 60 * 60, Observable.empty()).ignoreElements())
.subscribe(window => {
window.subscribe(/*Handle items in the stream*/);
});
以上構建的的Observables
或windows
,每個窗口由最多相隔5分鐘的元素組成。
謝謝。只爲那些仍然使用Rx.js的人4.相當於: 'let sharedSource = source.share(); sharedSource.window(()=> sharedSource.timeout(5 * 60 * 60,Rx.Observable.empty())。ignoreElements()) .subscribe(窗口=> { window.subscribe(/ *手柄流中的項目* /); });' –