/ / सभी ग्राहकों को आरएक्सजेएस में क्यों नहीं बुलाया जाता है - जावास्क्रिप्ट, आरएक्सजे

सभी ग्राहकों को आरएक्सजेएस में क्यों नहीं बुलाया जाता है - जावास्क्रिप्ट, आरएक्सजे

यह मेरा कोड है

let x = Rx.Observable.create(obs => window.obs = obs);
y = x.map(x=>x+2);
x.subscribe(v=>console.log("x got ",v));
y.subscribe(v=>console.log("y got ",v));
obs.next(1);

आउटपुट है

y got 3

मैं आउटपुट होने की उम्मीद कर रहा था

x got 1
y got 3

मुझे यहां क्या समझ नहीं आ रहा है? धन्यवाद

उत्तर:

जवाब के लिए 2 № 1

आप ओवरराइट कर रहे हैं window.obs दूसरी सदस्यता पर।

यदि आपका usecase आपको प्रक्रियात्मक रूप से उत्सर्जन को लागू करने की आवश्यकता है तो आप स्वयं एक अवलोकन बनाने के बजाय एक विषय का उपयोग कर सकते हैं:

const subj = new Rx.Subject();
const sub1 = subj.subscribe(x => console.log("x got: " + x));
const sub2 = subj.map(v => v * 2).subscribe(y => console.log("y got: " + y));
subj.next(2);
<script src="https://cdnjs.cloudflare.com/ajax/libs/rxjs/5.1.0/Rx.js"></script>