Veröffentlichen Sie den letzten Wert einer Observablen
Habe ich eine heiße beobachtbar ist (ein Thema, in diesem Fall):
var subject = new Rx.Subject();
Ich möchte erstellen Sie eine weitere beobachten, dass jedes mal, wenn eine neue Abonnements wird sofort feuert aus den letzten Wert, der produziert wurde.
Also in pseudo-code:
var myObservableWithLastValue = subject.publishLast();
subject.onNext(3);
myObservableWithLastValue.subscribe(function(x){
console.log(x); //should write 3
});
myObservableWithLastValue.subscribe(function(x){
console.log(x); //should write 3, too
});
subject.onNext(4);
myObservableWithLastValue.subscribe(function(x){
console.log(x); //should write 4
});
Dies ist ungefähr das, was ich will und es scheint zu funktionieren. Aber ich denke, es muss einen eingebauten Mechanismus, um das gleiche zu erreichen
Rx.Observable.prototype.keepLatest = function () {
var latestValue;
var disposable = this.subscribe(function (value) {
latestValue = value;
});
return Rx.Observable.create(function (observer) {
observer.onNext(latestValue);
return disposable.dispose;
});
};
InformationsquelleAutor der Frage Christoph | 2012-03-16
Du musst angemeldet sein, um einen Kommentar abzugeben.
Habe ich verwendet
.cache(1)
auf eine heißeObservable
. Zu geben scheint, die das Verhalten, die Sie gefragt (aber ich bin ein Neuling).InformationsquelleAutor der Antwort verylongword