El .select
espera una función y no un valor. Las siguientes obras:
(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/
en cuenta que no es necesario llamar a connect()
dos veces, normalmente se llama sólo una vez. Es mejor usar "automático" connect()
llamando al .publish().refCount()
al final de la cadena observable. Eso crearía un ConnectableObservable, en otras palabras, un "observable caliente" (ver https://github.com/Reactive-Extensions/RxJS/blob/master/doc/gettingstarted/creating.md#cold-vs-hot-observables). En este caso, no necesitamos una observación caliente.
En 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/