Подтвердить что ты не робот

Получите разницу между последними двумя значениями наблюдаемого RxJS

У меня есть наблюдаемое отслеживание положения прокрутки

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

Я хотел бы иметь второе наблюдаемое отслеживание прокрутки delta (newScroll - lastScroll)

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

Как реализовать что-то подобное? Я пробовал с проверкой без успеха. спасибо

4b9b3361

Ответ 1

Используйте pairwise:

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

Ответ 2

Старый вопрос, но добавьте информацию для RxJS версии 5, где поверхность API несколько изменилась, и мне понадобилось некоторое время, чтобы найти ответ: эквивалент pairwise будет bufferWithCount(2,1) (v4) или bufferCount(2,1) (v5).