2
這裏真的是一個片段,我想弄清楚:RxJava:緩衝項目,直到某些條件是當前項目
class RaceCondition {
Subject<Integer, Integer> subject = PublishSubject.create();
public void entryPoint(Integer data) {
subject.onNext(data);
}
public void client() {
subject /*some operations*/
.buffer(getClosingSelector())
.subscribe(/*handle results*/);
}
private Observable<Integer> getClosingSelector() {
return subject /* some filtering */;
}
}
有一個Subject
接受來自外部的事件。有一個客戶訂閱了這個主題,處理這些事件,也是buffer
。這裏的主要想法是緩衝項目應該每次根據使用流中項目計算的條件發出。
爲此,緩衝區邊界本身監聽主體。
重要的期望行爲:無論何時邊界發出物品,它也應包含在buffer
的以下發射中。當前配置不是這樣的情況(至少我認爲是這樣的)是從之前的關閉選擇器發出的,它到達buffer
,因此它不包含在當前排放中,而是留在等待下一個一。
有沒有一種方法可以讓關閉選擇器等待首先緩衝的項目?如果沒有,是否有另一種方法來緩存和釋放基於下一個傳入項目的項目?
非常感謝,大衛!這正是我所期待的。 – AndroidEx
你能展示如何實現一個Observable作爲條件的'BufferUntil'嗎?緩衝區直到另一個觀察結束?我試圖得到這個工作,但只是不知道如何去做... – prom85