3
當我使用Observable.first()運算符,我得到消息拋出:IllegalArgumentException「序列包含了太多的元素」。RxJava:拋出IllegalArgumentException時使用「第一」運營商
這裏是一個簡化的測試代碼可以重現例外:
Subject<Integer, Integer> subject = BehaviorSubject.create();
subject.first()
.subscribe(integer -> subject.onNext(1));
subject.onNext(0);
這些代碼是從一個非常複雜的現實項目中提取的,我不認爲我可以很容易解釋爲什麼我要做這個奇怪的東西。
所以我只想問一個問題: 這是RxJava錯誤,還是一個不正確使用由我自己?
如果一個不正確的使用,我想我需要重寫邏輯,以避免這些代碼。
非常感謝。
謝謝你的答覆。是的,主題是實現一個數據存儲單例,它有很多觀察者正在監聽數據變化。 subject.first()塊和subject.onNext(0)塊由不同部分的代碼調用(代碼的每個部分都有一個更新數據存儲的步驟)。 – Tankery
並感謝您的解決方法,它的工作原理。 – Tankery