Значение document.visibilityState отличается от ожидаемого с оператором mapTo()
Значение document.visibilityState
вернулся mapTo()
при использовании в качестве канала с наблюдаемой document.visibilitychange
событие не такое, как ожидалось.
fromEvent(document, 'visibilitychange')
.pipe(
mapTo(document.visibilityState)
)
.subscribe((val) => {
console.log(val, document.visibilityState);
});
Пример пера: https://codepen.io/nametoforget/pen/ZEQmdBj
См. Ручку входа в консоль.
1 ответ
Решение
mapTo
фиксирует возвращаемое значение один раз в начале и все время использует это начальное значение. Если вы хотите использовать последнее значениеmap
вместо:
const { fromEvent } = rxjs; // = require("rxjs")
const { map, startWith } = rxjs.operators; // = require("rxjs/operators")
fromEvent(document, 'visibilitychange')
.pipe(
map(() => document.visibilityState),
startWith(document.visibilityState)
)
.subscribe((val) => {
console.log(val, document.visibilityState);
});
<script src="https://unpkg.com/rxjs@6.6.0/bundles/rxjs.umd.min.js"></script>