2017-02-19 39 views
7

तो एक त्वरित सवाल है। मैं कुछ महीनों के लिए आरएक्सजेएस 5 का उपयोग कर रहा हूं, और मैंने थोड़ा सा व्यवहार किया है जिसे मैं वास्तव में समझ में नहीं आता, क्योंकि मैं इसे कहीं भी देखने में सक्षम नहीं हूं।आरएक्सजेएस 5 सदस्यता() सदस्यता के बिना

मैं ऐसी परिस्थिति में हूं जहां .subscribe(); के साथ एक अवलोकन श्रृंखला की सदस्यता लेना देखने योग्य नहीं है।

हालांकि, मैं एक onNext कॉलबैक (खाली या नहीं), नमूदार ट्रिगर और श्रृंखला प्रक्रियाओं जोड़ते हैं: .subscribe(() => {});

किसी को भी व्याख्या कर सकते हैं क्यों इस व्यवहार होता है?

EDIT2 - हटाया अप्रासंगिक उदाहरण

+0

कॉलिंग '.subscribe();' कोई तर्क के साथ काम करना चाहिए। क्या आप एक और पूरा उदाहरण पोस्ट करने में सक्षम हैं? – Ashley

+0

क्या आप डेमो बना सकते हैं? 'Subscribe()' के सभी पैरामीटर वैकल्पिक हैं और यह बिना किसी तर्क के काम करता है। – martin

+0

उपरोक्त उदाहरण (अब RxJS 5.2.0, और आयनिक 2.2.0 पर) में एक ही फ़ंक्शन को चेक आउट किया गया है, और अब यह किसी शरीर के बिना प्रक्रिया करता है। यदि समस्या वापस आती है, तो मैं इस थ्रेड को खुलेगा। – DarkNeuron

उत्तर

3

.subscribe() वास्तव में किसी भी मानकों की आवश्यकता नहीं है, यह सिर्फ एक emptyObserver यदि कोई भी दिया जाता है, जो बस के रूप में अच्छी तरह से काम करना चाहिए पैदा करेगा।

हालांकि यह संभव है कि 5.0.0-बीटा संस्करणों में से कुछ में इससे संबंधित समस्याएं हैं - यदि आप उन संस्करणों में से किसी एक का उपयोग कर रहे हैं, तो आपको अधिक स्थिर रिलीज में अपडेट करना चाहिए। बताए कि इस RxJS 5.4.2 में अब निश्चित बग था के लिए डेमियन Hercun को

const obs$ = Rx.Observable.of("Foo") 
 
    .do(() => console.log("triggered!")); 
 
    
 
obs$.subscribe(); 
 
obs$.subscribe();
<script src="https://unpkg.com/[email protected]/bundles/Rx.min.js"></script>

+1

मैं आरएक्सजेएस 5.1.1 पर भी हूं। मैं अपने कोड का एक उदाहरण कोशिश करूंगा और पोस्ट करूंगा। – DarkNeuron

संबंधित मुद्दे