2015-03-17 8 views
5

मेरे पास यह बेयरबोन उदाहरण व्यवहार नहीं है क्योंकि मैं documentation of rxjs के आधार पर अपेक्षा करता हूं। मैं उम्मीद करता हूं कि दोनों के लिए सदस्यता सभी मान प्राप्त करेगी।आरएसएस 2.3 में देखने योग्य देखने के लिए दो बार सदस्यता लेने पर दूसरी सदस्यता क्यों प्राप्त नहीं होती है?

डॉक्स का उल्लेख:

दो पर्यवेक्षकों तो इस क्रम की सदस्यता और अपने मूल्यों को प्रिंट कर लें। आप देखेंगे कि अनुक्रम प्रत्येक ग्राहक के लिए रीसेट कर दिया गया है, जिसमें दूसरी सदस्यता अनुक्रम को पहले मान से पुनरारंभ करेगा।

let s1 = rx.Observable.from([1, 2, 3, 4, 9, 11]) 

s1.subscribe(
    x => console.log(x), 
    x => console.log(x), 
    x => console.log('complete')) 

s1.subscribe(
    x => console.log(x), 
    x => console.log(x), 
    x => console.log('complete')) 

यह पता चला है उदाहरण rxjs 2.4 में अपेक्षा के अनुरूप काम करता है, लेकिन 2.3 में नहीं के रूप में हालांकि दूसरे सदस्यता सिर्फ 'पूर्ण'

लॉग करता है। क्या किसी को पता है कि क्या बदल गया? मैं the release notes

में यह स्थान नहीं कर सकते यहाँ 2.3.20 के साथ एक jsfiddle है: fiddle

और यहाँ 2.4.1 के साथ एक है: fiddle

+1

बस एक बग की तरह लगता है। वे कोड के माध्यम से जा रहे हैं और अनुकूलित कर रहे हैं और ऐसा लगता है जैसे उन्होंने इसे संक्षेप में तोड़ दिया। – Brandon

+0

आरएक्स अद्यतन करने से इस मुद्दे को हल किया गया – Remko

उत्तर

2

सर्दी नमूदार के लिए यह न सही व्यवहार। एक सरणी से निर्मित एक अवलोकन योग्य ठंडा है और एक पर्यवेक्षक से अधिक सदस्यता साझा नहीं कर सकता है। सही काम के लिए आप अपने अवलोकन योग्य को एक गर्म अवलोकन में बदल सकते हैं। आप इस प्रलेखन http://xgrommx.github.io/rx-book/content/observable/observable_instance_methods/publish.html पर देख सकते हैं। आपके मामले में आप इस http://jsbin.com/mowaco/edit?js,console जैसे कुछ उपयोग कर सकते हैं। अब दोनों समानांतर काम कर रहे सब्सक्रिप्शन।

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