, , . , , , , this.foo$ .
ReplaySubject storage.get('foo') storage.set('foo', val); .
: http://plnkr.co/edit/pxjRQr6Q6Q7LzYb1oode?p=preview
, .
class Setting {
constructor() {
var storage = new Storage();
this.fooSubject = new ReplaySubject(1);
this.fooSubject.subscribe((val) => {
storage.set('foo', val);
});
}
get observable() {
return this.fooSubject.asObservable();
};
store(val) {
this.fooSubject.next(val);
}
}
, Subject .asObservable() .next() store() . :
let settings = new Setting();
settings.store('Hello');
settings.observable.subscribe(val => console.log(val));
settings.store('Hello 2');
settings.store('Hello 3');
settings.observable.subscribe(val => console.log(val));
settings.store('Hello 4');
:
Hello
Hello 2
Hello 3
Hello 3
Hello 4
Hello 4
, ReplaySubject . setting.fooSubject.next(newFoo) ReplaySubject, storage.set('foo', val);.
. , , . JavaScript , storage.get('foo') , , , - -.