私はRxjsを学びたいと思っています。私は期待していない振る舞いを見ています。問題のJavaScriptコードは、それがdouble
ストリームの出力は、新たな乱数ではなく、source
から来た乱数のdouble型の値があることが判明しRxJSはMath.random()でうまくいきません
function updateText(css_link, observable){
observable.subscribe(x => {
const container = document.querySelector(css_link);
container.textContent = `${x}`;
});
}
function log(observable) {
observable.subscribe(i => {
console.log(i);
});
}
let source = Rx.Observable.timer(0, 1000)
.map(() => {return {value: Math.random()}});
let double = source
.map(x => {return {value: x.value * 2}});
let diff = source
.pairwise()
.map(a => JSON.stringify(a));
updateText("#source", source.map(x => x.value));
updateText("#double", source.map(x => x.value));
updateText("#diff", diff);
の下に表示されます。 diff
の出力を見ると、ランダムな数字がsource
、double
、diff
というように独立して生成されるという印象が再び得られます。
私はRxjsを学習していますが、ポイントがありません。私は、これらの流れは不変だと考えましたが、それらは互いに依存しています。
このコードのバージョンは、jsbinにあります。一部のhtmlは更新されています。