Observable을 반환하는 getAlgemeneInfo() 메소드가있는 'AlgemeneInfoService'가있는 Angular 2 응용 프로그램이 있습니다.RxJS는 두 스트림을 결합하여 두 번째 값을 호출합니다.
각도 축소/저장소를 사용하여 'Dossier'및 'Verpleegperiode'개체가있는 저장소가 있는데 둘 다 AlgemeneInfoService가 'AlgemeneInfo'개체를 가져 오는 데 사용하는 ID가 있습니다. 나는 AlgemeneInfoService를 호출하여 갱신해야 ActiveAlgemeneInfo을 넣어려고
합니다 (VerpleegperiodeId이 널 (null) 일 수있다) 때 국가 개체 중 서류 또는 Verpleegperiode의 상태가 변경 객체.
ActiveAlgemeneInfo 상태 객체 등록이 설정된 'selectedAlgemeneInfo'리턴이 등록을 처리하고 방법 getActiveAlgemeneInfo을 (갖는 ActiveAlgemeneInfoService)을 이용 하였다 내 계획 : 생성자에서
@select(state => state.dieet.activeAlgemeneInfo)
private activeAlgemeneInfo$: Observable<AlgemeneInfo>;
을
Observable.combineLatest(
this.activeInfohosVerpleegperiode$,
this.activeInfohosDossier$
)
.distinctUntilChanged()
.subscribe(([v, d]) => {
const verpleegperiodeId = v != null ? v.verpleegperiodeId : null;
const dossierId = d.dossierId;
console.log(`vp id: ${verpleegperiodeId} - d id: ${dossierId}`);
this._setActiveAlgemeneInfo(dossierId, verpleegperiodeId);
});
this.activeAlgemeneInfo$.subscribe(algemeneInfo => this.selectedAlgemeneInfo = algemeneInfo);
그리고 서비스에, 나는 또한 방법이있어 :
을 서비스, 나는 구독을 설정private _setActiveAlgemeneInfo = (dossierId: number, verpleegperiodeId: number) => {
this._algemeneInfoService
.getAlgemeneInfo(dossierId, verpleegperiodeId)
.subscribe(algemeneInfo => this._dieetActions.selectAlgemeneInfo(algemeneInfo));
}
이 서비스가 구축되면 및 방법 getActiveAlgemeneInfo()가 호출됩니다 내가)합니다 (Observable.combineLatest을 CONSOLE.LOG 때 서류 및 Verpleegperiode가있는 동안
public getActiveAlgemeneInfo =(): Observable<AlgemeneInfo> => {
return this.activeAlgemeneInfo$;
}
을 그냥, HTTP 요청을 스팸 메일 이전 요청과 정확히 동일합니다.
어떻게 작동합니까? 그것은 "깊은"비교을하지 않기 때문에 그것은 단지 참조를 비교 - -