क्या देरी के साथ अनुक्रम चलाने के लिए संभव है, यदि कोई अन्य घटनाएं नहीं आ रही हैं, और सभी मान एक बार में वापस आती हैं?आरएक्सजेएस: debounceTime सभी मानों को वापस
मुझे किसी प्रकार की debounceTime
func की आवश्यकता है, लेकिन यह सभी मान वापस कर देगा।
क्या देरी के साथ अनुक्रम चलाने के लिए संभव है, यदि कोई अन्य घटनाएं नहीं आ रही हैं, और सभी मान एक बार में वापस आती हैं?आरएक्सजेएस: debounceTime सभी मानों को वापस
मुझे किसी प्रकार की debounceTime
func की आवश्यकता है, लेकिन यह सभी मान वापस कर देगा।
यदि मैं सही ढंग से समझता हूं, तो आपको एक ऑपरेटर की आवश्यकता होती है जो घटनाओं को बफर करता है जब तक कि किसी निश्चित अवधि के लिए कोई घटना न हो, फिर सभी बफर्ड घटनाओं को दोहराता है।
सेट प्रत्यक्ष प्रोटोटाइप के लिए इस नए ऑपरेटर:: फिर
function bufferedDebounceTime(time) {
return Observable.create(subscriber => {
let buffer = [];
return this.do(x => buffer.push(x))
.debounceTime(time)
.flatMap(() => buffer)
.do(() => buffer = [])
.subscribe(
value => subscriber.next(value),
err => subscriber.error(err),
() => subscriber.complete()
);
});
}
Observable.prototype.bufferedDebounceTime = bufferedDebounceTime;
एक ऑपरेटर के रूप में उपयोग: मैं इस कोशिश करेगा
yourSourceObservable.bufferedDebounceTime(1000).subscribe(...)