1
この例のonCompleteコールバックがなぜ決して実行されないのか不思議です。次のコールバックは期待通りに実行されます。 fooによって作成されたobservableの中にエラーがスローされた場合、エラーコールバックも実行されます。完全なコールバックだけが実行されません。完全コールバックのRxJSがmergeMapで実行されていない
JSBin:http://jsbin.com/punoridajo/edit?html,js,console,output
let button = document.getElementById('click-me');
let clicks$ = Rx.Observable.fromEvent(button, 'click');
let foo =() => new Rx.Observable(observer => {
observer.next(1);
observer.next(2);
observer.next(3);
observer.next(4);
observer.next(5);
console.log('Calling on complete')
observer.complete();
})
clicks$
.mergeMap(() => foo())
.subscribe(
e => console.log(e),
err => console.error(err),
() => console.info('Completed') //Never gets executed
)
予想通り、私がfooによって返された観察可能に直接購読するとすべてが動作します。 mergeMap、switchMap、concatMapに関連してObservable内で完全な呼び出しができないのですか?