2016-11-22 7 views
1

내가 좋아하는 일을하고 싶습니다. 내 코드에서 verifyToken과 같은 함수는 Observables이고, 나는 그것들을 연결하고 싶다. 이 패턴이 바른 길에 있습니까? 내부적으로 observer.error(new Error('problem')) 중 하나가 실행 되 자마자 체인이 충돌하고 오류 처리기가 호출되지 않습니다. 어떻게 개선 할 수 있습니까?RxJS 해제 중첩 콜백

답변

1

오류가 구독에 전파된다고 생각합니다.

const Rx = require('rxjs/Rx'); 
const Observable = Rx.Observable; 

let userToken = Observable.of(42); 
let verifyToken = Observable.range(1,3); 
let getUserInformation = Observable.of('whatever'); 
let createUser = Observable.create(observer => { 
    observer.error(new Error('problem')); 
}); 

Observable.of(userToken) 
    .flatMap(val => verifyToken) 
    .flatMap(val => getUserInformation) 
    .flatMap(val => createUser) 
    .subscribe({ 
     next: result => console.log("Next:", result), 
     error: error => console.log("Error subscriber:", error.message) 
    }); 

이 콘솔의 출력이 예상대로 : 이것은 당신의 상황을 시뮬레이션한다 당신이 옳은 것

Error subscriber: problem 
+0

을이 절대적으로 작업, 그것은 내 인생의 실수였다. 최소한의 작업 예제를 작성해 주셔서 감사합니다. – Henry