RxJS:どのようにあなたが観察可能に、このような文字列としてプリミティブ型をラップし、そのプリミティブへの変更に耳を傾けていますか?RxJS:文字列を折り返して文字列を変更する方法は?
次の例を考えます。 setTimeout
は、文字列s
を変更する外部イベントをシミュレートします。ただし、console.log
は1回だけ発生し、setTimeout
が呼び出された後には発生しません。何故ですか?
let s = "Hello World";
Observable.of(s).subscribe(val => {
console.log(val);
});
// some external event changes variable s
setTimeout(() => {
s = "Wat?";
}, 1000);
// Output: prints "Hello World" to console, but not "Wat?"
この質問は少し間抜けに聞こえるかもしれませんが、私はRxJSのドキュメントと例のすべての種類によって2時間で検索し、それらのほとんどは、配列またはオブジェクトで遊びます。これは私が望むものではありません。私は属性、関数、配列などを変更したくありません。単なる文字列またはブール値または数値。
しかし、文字列は不変です。 – Pointy
有効なポイント。だからRxJSはそれを考慮しないのですか? – ntaso
サンプルコードでは、プリミティブな文字列* value * '" Hello World "'があり、*変数* 's'があります。あなたは、あなたが観察しているものであり、それほど多くの文字列の値(文字列の値が変更されないので良い)を変数に持たせたいと思うようです。 – Pointy