【发布时间】:2016-12-23 12:49:54
【问题描述】:
我正在尝试了解 flatMap 的工作原理。我知道这是处理 Observable> 的一种方式。
无论如何,我正在测试它的行为并陷入了困境:
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
1 点击减号打印:
done
done
done
为什么当点击 minusDom 时,它重播事件的次数与我们点击 plusDom 的次数一样多?
【问题讨论】:
标签: rxjs