1
私はRx.Observable.prototype.reduce
がArray.prototype.reduce
ようなので、私はこのようにスキャンを使用することはできませんなぜ私が疑問に思うreduceが手書きチェーンメソッドと異なる動作をするのはなぜですか?
function fn(prev, num){
return Rx.Observable.of(prev+num);
}
fn(1, 1).switchMap(res =>fn(res, 2))
.switchMap(res =>fn(res, 3))
.subscribe(x=>console.log(x));
// 7
Rx.Observable.from([2,3]).reduce(
(prev, cur) =>prev.switchMap(res => fn(res, cur)),
fn(1, 1)
).subscribe(x=>console.log(x))
// SwitchObservable {source: FlatMapObservable}
そのようなコードを記述していると思いますか?どのように私は正しい方法でオペレータを使用できますか?