RxJS: Как вы заключаете примитивный тип, такой как строки в и наблюдаемых слушать изменения в этом примитивном?RxJS: Как обернуть и наблюдать строку за изменения?
Рассмотрим следующий пример. setTimeout
моделирует некоторое внешнее событие, которое меняет строку s
. Однако console.log
срабатывает только один раз, а не после того, как вызывается 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?"
Этот вопрос может показаться немного тупым, но я искал в течение 2 часов через все виды RxJS документации и примеры, и большинство из них играет с массивами или объектами. Это не то, что я хочу. Я не хочу менять атрибуты, функции, массивы или что-то в этом роде. Просто простая строка или логическое значение или число.
Струны неизменны. – Pointy
Действительная точка. Итак, RxJS не учитывает это? – ntaso
Ну, в вашем примере кода есть примитивная строка * значение * '" Hello World ", а затем есть * variable *' s'. Похоже, вы хотите, чтобы переменная была той, которую вы наблюдаете, и не столько строковое значение (что хорошо, потому что значение строки не изменится). – Pointy