- विषय : सदस्यता लेने पर हमेशा वह डेटा मिलता है जिसे सदस्यता के बाद धकेला जाता है अर्थात पिछले पुश किए गए मान प्राप्त नहीं होते हैं ।
const mySubject = new Rx.Subject();
mySubject.next(1);
const subscription1 = mySubject.subscribe(x => {
console.log('From subscription 1:', x);
});
mySubject.next(2);
const subscription2 = mySubject.subscribe(x => {
console.log('From subscription 2:', x);
});
mySubject.next(3);
subscription1.unsubscribe();
mySubject.next(4);
इस उदाहरण के साथ, यहाँ वह परिणाम है जो कंसोल में मुद्रित होगा:
From subscription 1: 2
From subscription 1: 3
From subscription 2: 3
From subscription 2: 4
ध्यान दें कि देरी से आने वाली सदस्यताएँ कुछ ऐसे डेटा से गायब हैं जिन्हें विषय में धकेला गया है।
- रीप्ले विषय : पिछले मानों की एक बफ़र रखने में मदद कर सकते हैं जो नए सदस्यता के लिए उत्सर्जित होंगे।
यहां उन विषयों को फिर से उपयोग करने के लिए उदाहरण दिया गया है, जहां buffer of 2 previous values
नए सदस्यता पर रखे गए और उत्सर्जित किए जाते हैं:
const mySubject = new Rx.ReplaySubject(2);
mySubject.next(1);
mySubject.next(2);
mySubject.next(3);
mySubject.next(4);
mySubject.subscribe(x => {
console.log('From 1st sub:', x);
});
mySubject.next(5);
mySubject.subscribe(x => {
console.log('From 2nd sub:', x);
});
यहाँ वह है जो हमें दिलासा देता है:
From 1st sub: 3
From 1st sub: 4
From 1st sub: 5
From 2nd sub: 4
From 2nd sub: 5
- व्यवहार विषय : फिर से खेलना विषयों के समान हैं, लेकिन केवल अंतिम उत्सर्जित मूल्य, या डिफ़ॉल्ट मान फिर से उत्सर्जित किया जाएगा यदि कोई मूल्य पहले उत्सर्जित नहीं किया गया है:
const mySubject = new Rx.BehaviorSubject('Hey now!');
mySubject.subscribe(x => {
console.log('From 1st sub:', x);
});
mySubject.next(5);
mySubject.subscribe(x => {
console.log('From 2nd sub:', x);
});
और परिणाम:
From 1st sub: Hey now!
From 1st sub: 5
From 2nd sub: 5
संदर्भ: https://alligator.io/rxjs/subjects/