我有一个可观察的跟踪滚动位置
const scroll = Observable
.fromEvent(document, 'scroll')
.map(e => window.pageYOffset)
.startWith(0)
我希望有第二个observable跟踪滚动增量(newScroll - lastScroll)
const scrollDelta = scroll
// ???
.subscribe(delta => console.log('delta:', delta) )
如何实现这样的事情? 我试过扫描没有成功。 THX
答案 0 :(得分:28)
使用pairwise:
scroll
.pairwise()
.map([a, b] => b - a);
答案 1 :(得分:8)
老问题,但要为RxJS版本5添加信息,其中API表面有所改变,我花了一些时间才找到答案:相当于pairwise
将是bufferWithCount(2,1)
(v4 )或bufferCount(2,1)
(v5)。