获取 RxJS Observable 的最后两个值之间的差异

Get difference between last two values of an RxJS Observable

我有一个 observable 跟踪滚动位置

 const scroll = Observable
  .fromEvent(document, 'scroll')
  .map(e => window.pageYOffset)
  .startWith(0)

我想要第二个 observable 跟踪滚动增量 (newScroll - lastScroll)

const scrollDelta = scroll
  // ???
  .subscribe(delta => console.log('delta:', delta) )

如何实现这样的东西? 我试过扫描但没有成功。 谢谢

使用pairwise:

scroll
    .pairwise()
    .map(([a, b]) => b - a);

老问题,但要为 RxJS 版本 5 添加信息,其中 API 表面发生了一些变化,我花了一些时间才找到答案:等同于 pairwise 的是 bufferWithCount(2,1) (v4) 或 bufferCount(2,1) (v5).