2016-05-20 12 views
11

शीर्षक यह सब वास्तव में कहता है। मैं बिना किसी सदस्यता के पर्यवेक्षण से वर्तमान मूल्य कैसे प्राप्त कर सकता हूं? मैं सिर्फ वर्तमान मूल्य एक बार और कोई नई बात नहीं मान चाहते हैं के रूप में वे आ रहे हैं ...सब्सक्राइब किए बिना पर्यवेक्षण से वर्तमान मूल्य प्राप्त करें (केवल एक बार मूल्य चाहते हैं)

+0

आप http अनुरोध का उपयोग करते समय सीधे '.map' से डेटा प्राप्त करना चाहते हैं? –

+0

असल में नहीं, मेरे पास अपना खुद का बना हुआ अवलोकन (ऐप का एक राज्य) है, आमतौर पर मैं सब्सक्राइब करता हूं और परिवर्तनों पर कार्य करता हूं क्योंकि वे आ रहे हैं, लेकिन अब मुझे केवल वर्तमान स्थिति प्राप्त करने की आवश्यकता है (बिना किसी भी बदलाव के अपडेट भविष्य) ... – EricC

+0

क्या लेआउट विधि आपके लिए काम करती है? http://github.com/Reactive-Extensions/RxJS/blob/master/doc/api/core/operators/take.md – Sjoerd

उत्तर

18

आप BehaviorSubject उपयोग करने की आवश्यकता,

  • BehaviorSubject ReplaySubject के समान है, सिवाय इसके कि यह केवल याद करते हैं अंतिम प्रकाशन
  • व्यवहार विषय भी आपको टी का डिफ़ॉल्ट मान प्रदान करने की आवश्यकता है। इसका मतलब है कि सभी ग्राहकों को तुरंत (जब तक यह पहले से पूरा नहीं हो जाता है) प्राप्त होगा।

यह आपको पर्यवेक्षण द्वारा प्रकाशित सबसे हालिया मूल्य प्रदान करेगा।

व्यवहारकर्ता getter नाम value नामित संपत्ति प्रदान करता है ताकि यह सबसे हालिया मूल्य पारित हो सके।


PLUNKER DEMO

  • इस उदाहरण मूल्य 'एक' कंसोल के लिए लिखा है में:

//Declare a Subject, you'll need to provide a default value. 
    var subject: BehaviorSubject<string> = new BehaviorSubject("a"); 

उपयोग:

console.log(subject.value); // will print the current value 
+0

मेरे पास इस तरह की स्थिति है (टाइपस्क्रिप्ट के साथ): 'myState: EventEmitter = नया EventEmitter();', इसलिए मुझे EventEmitter के बजाय व्यवहार Subject का उपयोग करना चाहिए, है ना? कुछ 'myState: व्यवहार विषय = नया व्यवहार विषय (' डिफ़ॉल्ट स्थिति '); ' – EricC

+0

हाँ, यह सही है। EventEmitter सरल पर्यवेक्षण का उपयोग करता है। –

+0

लेकिन व्यवहार विषय में 'अगली' विधि है, इसलिए यदि कोई वर्ग अपने ग्राहकों को व्यवहार व्यवहार का खुलासा करता है तो उन ग्राहकों के पास 'अगली' ट्रिगर करने और चर को अपडेट करने की क्षमता होती है। आवश्यकता है कि केवल अपने ग्राहकों के लिए स्रोत ऑब्जेक्ट में व्यवहार व्यवहार के मूल्य और पर्यवेक्षण सदस्यों को बेनकाब करने का एक तरीका है। क्या कोई जानता है कि मैं यह कैसे कर सकता हूं? – Neutrino

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