2015-07-08 7 views
13

Bir gözlemlenebilir kaydırma konumunugözlemlenebilir bir RxJS son iki değer arasındaki farkı alın

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

Ben kaydırma delta (newScroll - lastScroll)

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

Nasıl izleme ikinci gözlemlenebilir istiyorum izleme var böyle bir şey uygulamak? Taramadan başarı ile denedim. Thx

cevap

16

Kullanım pairwise:

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

Teşekkür ederim Brandon! –

+0

Gözlemlenen değişkenimiz bir Nesne ise bunu yapmanın bir yolu var mı? Önceki değerin ve şimdiki değerin farkını almak istiyorum, bunu yapmak bir şekilde mümkün mü? – Alex

6

Eski soru, ama API yüzeyi biraz değişti ve cevap bulmak için biraz zaman aldı RxJS sürümü 5 için bilgi eklemek: pairwise için eşdeğer bufferWithCount(2,1) (v4) veya bufferCount(2,1) (v5) olacaktır.

+1

Onun beta1'de tekrar eklendi. https://github.com/ReactiveX/RxJS/commit/1432e59 – FarazShuja

+0

Bilgi için teşekkürler. Yeniden adlandırılan işleçlerin adlarını izlemek bazen biraz zaman alabilir. –