我想我没有正确理解 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

他们都习惯于沉默 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/

10-09 21:56