Publier la dernière valeur d'une observable

J'ai un chaud observables (un sujet, dans ce cas):

var subject = new Rx.Subject();

Je veux créer un autre observable que chaque fois qu'un nouvel abonnement est effectué immédiatement les feux de la dernière valeur qui a été produit.

Donc en 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
});

C'est à peu près ce que je veux et il semble fonctionner. Cependant, je suppose qu'il doit être intégré dans le mécanisme pour obtenir le même

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 Christoph | 2012-03-16