2016-08-03 9 views
0

flatMap()を使用しようとしていますが、動作しません。Rxjs、Observable chaining

var source1 = Rx.Observable.create((observer) => { 
    setTimeout(() => { 
     observer.onNext(1); 
     observer.onCompleted(); 
    }, 1000); 
}); 

var source2 = Rx.Observable.create((observer) => { 
    setTimeout(() => { 
     observer.onNext(2); 
     observer.onCompleted(); 
    }, 1000); 
}); 

var test = source1.flatMap((result) => { 
    console.log('flat: ' + result); 
    return source2; 
}, e => console.log(`onError1: ${e}`)); // onError1: 1 

test.subscribe((result) => { 
    console.log('subscribe: ' + result); 
}, e => console.log(`onError2: ${e}`)); // onError2: undefined 

私は間違っていますか?

答えて

2

flatMapの2番目の引数は、エラーハンドラではなく、resultSelectorです。

subscribe()の第2引数にエラーハンドラがあります。

だからあなたのコードは次のようにする必要があります:

... 

var test = source1.flatMap((result) => { 
    console.log('flat: ' + result); 
    return source2; 
}); 

... 
関連する問題