मैं दो observables है:RxJava debounced मर्ज और नहीं debounced observables
नमूदार हे (खुला): TextView में खोला कुछ सामग्री के साथ फ़ाइल
प्रत्यक्ष ई (संपादित): फ़ाइल सामग्री TextView में संपादित
मैं ई देखने योग्य को अस्वीकार करना चाहता हूं, और इसे ओ देखने योग्य के साथ विलय करना चाहता हूं।
:new content: O1
new content: E1 // this output is rebundant (cuz we already have newer content O1)
यह क्या चल रहा है का एक चित्र है:
obs = Observable.merge(E.debounce(2000, TimeUnit.MILLISECONDS) , O)
.subscribe(content->System.out.println("new content: " + content))
समस्या
कि अगर ई एक घटना E1 का उत्सर्जन करता है और सही है कि हे के बाद O1 घटना का उत्सर्जन करता है, हम उत्पादन किया है
इस अत्यधिक पुरानी घटना से छुटकारा पाने के लिए कैसे देखा जा सकता है?
'विलय' कार्यकर्ता से 'विलय' ऑपरेटर को क्यों नहीं ले जायेगा? –
@TassosBassoukos, ईवेंट संपादित करें (ई 1) बहुत बार होता है (वास्तव में यह एक महत्वपूर्ण टाइप की गई घटना है) इसलिए मैं इसे रद्द करना चाहता हूं। हालांकि जब मैं फ़ाइल खोलता हूं, तो मैं बिना किसी बहस के तुरंत ओ 1 ईवेंट प्राप्त करना चाहता हूं। – wilddev
उदाहरण के लिए उदाहरण के लिए आप "वर्जनिंग" का उपयोग कर सकते हैं। सामग्री और समय दोनों को रखने के लिए अपने अवलोकन योग्य ओ और अवलोकन योग्य ई घटनाओं (debounce से पहले) मानचित्र करें। यदि आप अवलोकननीय ई इवेंट की तुलना में अवलोकननीय ई इवेंट "पुराना" है तो आप एक तुलना कर सकते हैं। आपको Observable.combineLatest o पर स्विच करने की आवश्यकता हो सकती है। – krp