rxjs中样本和油门之间的差异

问题描述 投票:4回答:2

我想我不明白samplethrottle之间的区别。

http://reactivex.io/rxjs/class/es6/Observable.js~Observable.html#instance-method-sample

http://reactivex.io/rxjs/class/es6/Observable.js~Observable.html#instance-method-throttle

他们都习惯于沉默可观。示例使用notifier发出值并使用限制使用函数来确定它应忽略值的时间长度?

那是对的吗?

angular rxjs reactive-programming angular2-observables
2个回答
2
投票

在以下示例中:

//emit value every 1 second
const source = Rx.Observable.interval(1000);

节流:

//throttle for 2 seconds, emit latest value
const throttle = source.throttle(val => Rx.Observable.interval(2000));
//output: 0...3...6...9
throttle.subscribe(val => console.log(val));

样品:

//sample last emitted value from source every 2s 
const sample = source.sample(Rx.Observable.interval(2000));
//output: 2..4..6..8..
sample.subscribe(val => console.log(val));

正如你所看到的,Sample拾取了最新发射的事件(0,2,......),而Throttle关闭了流2秒并等待下一个发射(0,3,6,...... )。


1
投票

油门忽略时间间隔内的每个事件。因此,如果通知程序发出事件,则会忽略(并删除)源中的所有先前事件。

Sample返回自上次样本以来的最后一个事件。因此,如果通知程序发出事件,它将从源事件中查看上次采样中的最新事件。

© www.soinside.com 2019 - 2024. All rights reserved.