1
我是RxJS的新手,我想了解如何管理副作用。RxJS我該如何映射一個在do中被重新分配的值?
在下面的例子中,我認爲每次點擊鼠標時,都會記錄一個隨機數組(每次點擊一個新的隨機數)。但我得到的每一次都是一個空陣列,儘管潛在的arr
引用顯示了正確的值。
var clicks = Rx.Observable.fromEvent(document, 'click');
var arr = [];
var obs = clicks
.do(() => { arr = arr.concat(Math.random()); })
.mapTo(arr);
obs.subscribe(x => console.log(x));
多次點擊左右記錄一個空數組每次:[]
但是,如果我退出arr
:
[0.5336263577508611, 0.8818515430970437, 0.7067802753822072]
我得到了我exepected。
有趣的是,按預期工作:
var clicks = Rx.Observable.fromEvent(document, 'click');
var arr = [];
var obs = clicks
.do(() => { arr.push(Math.random()); })
.mapTo(arr);
obs.subscribe(x => console.log(x));
爲什麼push
荷蘭國際集團以arr
作品,但重新分配它不?看起來好像mapTo
應該只返回參考arr
變量。
只是想知道,爲什麼不使用'clicks.mapTo(Math.random())',然後'掃描'他們到一個數組? –