.select
पर एक समारोह, नहीं एक मूल्य की उम्मीद है। निम्नलिखित काम करता है:
(function() {
var list = document.getElementById("list");
var stream = Rx.Observable.interval(35000)
.startWith(-1)
.select(function(){ return moment().format("D MMMM, HH:mm:ss") });
stream.subscribe(function(value) {
var li = document.createElement("li");
li.innerHTML = "subscriber 1: "+value;
list.appendChild(li);
});
stream.subscribe(function(value) {
var li = document.createElement("li");
li.innerHTML = "subscriber 2: "+value;
list.appendChild(li);
});
})();
http://jsfiddle.net/9EjSQ/43/
सूचना है कि आप connect()
दो बार कॉल करने के लिए, आम तौर पर आप इसे केवल एक बार फोन की जरूरत नहीं है। अवलोकन श्रृंखला के अंत में .publish().refCount()
पर कॉल करके "स्वचालित" connect()
का उपयोग करना बेहतर है। इससे कनेक्ट करने योग्य ऑब्सर्जेबल बन जाएगा, दूसरे शब्दों में "गर्म अवलोकन" (https://github.com/Reactive-Extensions/RxJS/blob/master/doc/gettingstarted/creating.md#cold-vs-hot-observables देखें)। इस मामले में, हमें एक गर्म अवलोकन की आवश्यकता नहीं थी।
coffeescript में:
list = document.getElementById("list")
stream = Rx.Observable.interval(35000)
.startWith(-1)
.select(-> moment().format("D MMMM, HH:mm:ss"))
stream.subscribe((value) ->
li = document.createElement("li")
li.innerHTML = "subscriber 1: " + value
list.appendChild(li)
)
stream.subscribe((value) ->
li = document.createElement("li")
li.innerHTML = "subscriber 2: " + value
list.appendChild(li)
)
http://jsfiddle.net/9EjSQ/44/
स्रोत
2014-05-23 20:14:46