我想我没有正确理解 sample
和 throttle
之间的区别。
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
他们都习惯于沉默 observable。示例使用 notifier
发出值,而 throttle 使用函数来确定它应该忽略值多长时间?
那是对的吗?
最佳答案
在下面的例子中:
//emit value every 1 second
const source = Rx.Observable.interval(1000);
throttle :
//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,... )。关于angular - rxjs中sample和throttle的区别,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/48053788/