मैं आरएक्सजेएस को सिंक दुनिया के साथ घटनाओं की "पुल" एसिंक दुनिया में उपयोग करना चाहता हूं। विशेष रूप से मैं एक ऐसा फ़ंक्शन बनाना चाहता हूं जो कुछ समय अंतराल के दौरान एकत्रित घटनाओं की एक सरणी देता है।आरएक्सजेएस को अवलोकन करने के लिए अवलोकन
मैं जो करता है जो मैं चाहता
var source = Rx.Observable
.interval(100 /* ms */)
.bufferWithTime(1000).take(1)
मैं ठीक सही मान मुद्रित कर सकते हैं प्रत्यक्ष बना सकते हैं
var subscription = source.subscribe(
function (x) {
console.log('Next: ' + JSON.stringify(x));
},
function() {
console.log('Completed');
});
यह
[0,1,2,3,4,5,6,7,8]
Completed
प्रिंट लेकिन चाहते हैं मैं चाहता हूँ आवंटित करने के लिए है चर के लिए यह सरणी। सैद्धांतिक रूप मैं चाहता हूँ
var collectedDuringSecond = source.toPromise.getValue()
विचार की तरह कुछ है कि getValue तो ब्लॉक कर देगा के बाद उपरोक्त पंक्ति किया जाता है collectedDuringSecond शामिल होंगे है [0,1,2,3,4,5,6,7,8]
पहले, जावास्क्रिप्ट में अवरुद्ध करना सबसे अच्छा विचार नहीं है। आरएक्स विशेष रूप से आपको एसिंक्रोनस प्रोग्रामिंग द्वारा पेश किए गए बहुत से दर्द से बचने की अनुमति देता है, तो आप मूल्य प्राप्त करने के लिए क्यों ब्लॉक करना चाहते हैं? –
मैं जावास्क्रिप्ट के लिए नया हूं, इसलिए आप सही हो सकते हैं कि मैं अवरुद्ध नहीं करना चाहता हूं;)। असल में, इस विशेष डेटा सेट काफी भी स्थिर यह एक वितरण तंत्र के रूप घटनाओं का उपयोग करता है। इस प्रकार मैं एपीआई क्लाइंट को "सरल" सिंक्रोनस एपीआई का पर्दाफाश करना चाहता था। अपनी टिप्पणी के आधार पर मैं शायद पर पुनर्विचार करना चाहिए और सिर्फ प्रत्यक्ष लौट सकते हैं और ग्राहक की घटनाओं को किसी भी तरह वे चाहते हैं – apolenur
निश्चित रूप से एक बेहतर तरीका है कि उपभोग करते हैं। * यदि * किसी कारण से (मैं नहीं जानता कि क्यों) आप आरएक्स को छिपाने के लिए करना चाहता था, आप के बजाय उजागर की एक नोड शैली कॉलबैक ('समारोह (अरे, मूल्य) {...}') के साथ अपने एपीआई प्रदान कर सकता है नमूदार। हालांकि, मैं, सार्वजनिक एपीआई के भाग के रूप नमूदार उजागर क्योंकि वे हमेशा से ही 'उस वस्तु को subscribe' कर सकते हैं, बजाय खुद फोन एपीआई पर कॉलबैक उपलब्ध कराने के सुझाव है। –