Привет, я пытаюсь создать Observable, у которого будут значения, передаваемые ему из другой подписки, в этом случае ngrx Store Reducer .
export class IsolatedAgentService {
missionList$: Observable<any>; // I need this observables subscription to emit to calculatedValue$
calculatedValue$:Observable<any>; // I need this observable to get its values from the subscription of missionList$ subscription
missionList:any;
constructor(
private _store:Store<any>
){
this.missionList$ = this._store.select(root_reducers.getMissionList).pipe(skip(1));
this.missionList$.subscribe((val:any)=> {
let mostIsolatedCountry:any; //will hold value of calculation
this.missionList = val;
mostIsolatedCountry = this.getMostIsolatedCountry(this.missionList);
// I want tot emit mostIsolatedCountry to another subscription
});
}
What I'mпытаюсь сделать:
export class IsolatedAgentService {
missionList$: Observable<any>;
calculatedValue$:Observable<any> = Observable.create((observer)=>{
// moved this line here from the previous missionList$ subscription
let calculated:any = this.getMostIsolatedCountry(this.missionList);
observer.next(calculated)
});
missionList:any;
calculatedValue:any;
constructor(
private _store:Store<any>
){
this.missionList$ = this._store.select(root_reducers.getMissionList).pipe(skip(1));
this.missionList$.subscribe((val:any)=> {
let mostIsolatedCountry:any;
this.missionList = val;
this.calculatedValue$.subscribe((value)=>{
this.calculatedValue = value;
});
});
}
В настоящее время я в основном устанавливаю свойство класса в одной подписке, затем внутри этой же подписки, после установки свойства класса, я вызываю вторую подписку, которая вычисляет значениеиз этого набора свойств класса.
Это не правильно, и я уверен, что это не тот способ, но на данный момент мне не хватает моих знаний по rxjs / observable.
Внимание!Я не заинтересован в выдаче вычисленного значения через действие Store, я хочу Observable, специфичный для экземпляра класса.