के बीच विन्यास समय के बाद पुनरावृत्ति के कोडआरएक्स distinctUntilChanged घटनाओं
Rx.Observable.merge(
Rx.Observable.just(1),
Rx.Observable.just(1).delay(1000)
).distinctUntilChanged()
.subscribe(x => console.log(x))
हमें उम्मीद है कि 1
सिर्फ एक बार लॉग ऑन है निम्नलिखित एक पल के लिए विचार करते हैं अनुमति देते हैं। हालांकि, अगर हम एक मूल्य की पुनरावृत्ति की अनुमति देना चाहते हैं तो क्या इसका अंतिम उत्सर्जन समय पहले कॉन्फ़िगर करने योग्य था? मेरा मतलब है दोनों घटनाएं लॉग इन करें।
उदाहरण के लिए यह निम्नलिखित
Rx.Observable.merge(
Rx.Observable.just(1),
Rx.Observable.just(1).delay(1000)
).distinctUntilChanged(1000)
.subscribe(x => console.log(x))
जिसमें distinctUntilChanged()
टाइमआउट किसी प्रकार स्वीकार करता है अगले तत्व पर पुनरावृत्ति की अनुमति के लिए की तरह कुछ है करने के लिए शांत हो जाएगा। हालांकि ऐसी चीज मौजूद नहीं है और मैं सोच रहा था कि अगर कोई फ़िल्टर के साथ गड़बड़ किए बिना उच्च स्तरीय ऑपरेटरों का उपयोग करके इसे प्राप्त करने के लिए कोई शानदार तरीका जानता है जिसके लिए राज्य
बहुत बढ़िया, समस्या का एक बहुत चालाक समाधान - स्वीकार्य जवाब होना चाहिए! – olsn
विंडो ऑपरेटर के बारे में नहीं पता था। मैंने इस तरह कुछ ठोस तरीके से लागू किया था लेकिन यह वास्तव में इसे सरल बनाता है। धन्यवाद! हालांकि मैंने देखा कि यह दोहराए गए तत्वों को उत्सर्जित कर सकता है यदि वे खिड़की सीमा (उदा। 9 0 9 0 और 1010 एमएमएस) के पास होते हैं। मैंने इसे अंतिम विशिष्ट आइटम के सापेक्ष सीमा टाइमआउट बनाने के लिए बदल दिया: 'obs.window (obs.distinctUntilChanged()। स्विचमैप (एस => ऑब्जर्वेबल.timer (1000)))। संशोधित [उदाहरण] देखें (https://jsbin.com/soyovumeja/edit?js,console)। –