【问题标题】:document.visibilityState value not as expected with mapTo() operatordocument.visibilityState 值与 mapTo() 运算符不符
【发布时间】:2020-11-09 02:44:47
【问题描述】:

mapTo() 运算符在用作带有 document.visibilitychange 事件的可观察对象的管道时返回的 document.visibilityState 的值与预期不符。

fromEvent(document, 'visibilitychange')
  .pipe(
    mapTo(document.visibilityState)
  )
  .subscribe((val) => {
    console.log(val, document.visibilityState);
  });

示例笔:https://codepen.io/nametoforget/pen/ZEQmdBj

查看控制台登录笔。

【问题讨论】:

    标签: rxjs visibilitychange


    【解决方案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>

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-11-21
      • 2020-08-10
      • 2021-09-09
      • 2011-04-20
      • 2017-03-29
      • 1970-01-01
      相关资源
      最近更新 更多