我正在尝试使用flatMap(),但它不起作用。
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
我做错了什么?
答案 0 :(得分:2)
flatMap
的第二个参数是resultSelector,而不是错误处理程序。
subscribe()的第二个参数有错误处理程序。
所以你的代码应该是这样的:
...
var test = source1.flatMap((result) => {
console.log('flat: ' + result);
return source2;
});
...