我正在尝试了解 flatMap 的工作原理。我知道这是一种处理Observable<的方法。可观察到的< T>取代。
无论如何,我正在测试它的行为并坚持下去:
let plusDom = document.querySelector('#plus');
let minusDom = document.querySelector('#minus');
let minusSource = Rx
.Observable
.fromEvent(minusDom, 'click');
let plusSource = Rx.Observable
.fromEvent(plusDom, 'click');
plusSource
.flatMap(function(c){
console.log('Flatmap called');
return minusSource;
})
.subscribe(function(e){
console.log('done');
})
这是jsbin:https://jsbin.com/sefoyowuqe/edit?html,js,console,output
我不明白这种行为:
3 clicks on plusDom prints:
Flatmap called
Flatmap called
Flatmap called
单击minusDom打印:
done
done
done
为什么在点击minusDom时,它会像点击plusDom一样多次重播事件?