RxJS: Wie man wie ein String in einem beobachtbare eine primitive Art Wickeln und hören, dass primitive auf Veränderungen?RxJS: Wie umranden und beobachten Sie die Zeichenkette für Änderungen?
Betrachten Sie das folgende Beispiel. setTimeout
simuliert ein externes Ereignis, das die Zeichenfolge s
ändert. Allerdings wird die console.log
nur einmal ausgelöst und nicht nach setTimeout
aufgerufen. Warum das?
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?"
Diese Frage könnte ein bisschen dumm klingen, aber ich für 2 Stunden durch alle Arten von RxJS docs und Beispiele gesucht und die meisten von ihnen mit Arrays oder Objekte spielen. Das ist nicht was ich will. Ich möchte keine Attribute, Funktionen, Arrays oder ähnliches ändern. Nur eine einfache Zeichenfolge oder Boolean oder Zahl.
Strings sind jedoch unveränderlich. – Pointy
Gültiger Punkt. Also berücksichtigt RxJS das nicht? – ntaso
Nun in Ihrem Beispielcode gibt es die primitive Zeichenfolge * value * '" Hello World "', und dann gibt es die * Variable * 's'. Es scheint so, als ob die Variable das beobachtete Objekt sein soll und nicht so sehr der String-Wert (was gut ist, weil der String-Wert sich nicht ändert). – Pointy