昨天讲到了在 UI 操作上很常用的 delay,今天我们接着要来讲另外两个也非常实用 operators,尤其在做性能优化时更是不可或缺的好工具!
Operators
debounce
跟 buffer、bufferTime 一样,Rx 有 debounce 跟 debounceTime 一个是传入 observable 另一个则是传入毫秒,比较常用到的是 debounceTime,这里我们直接来看一个示例
var source = Rx.Observable.interval(300).take(5)
var example = source.debounceTime(1000)
example.subscribe({
next: (value) => {
console.log(value)
},
error: (err) => {
console.log('Error: ' + err)
},
complete: () => {
console.log('complete')
},
})
// 4
// complete
这里只印出 4
然后就结束了,因为 debounce 运行的方式是每次收到元素,他会先把元素 cache 住并等待一段时间,如果这段时间内已经没有收到任何元素,则把元素送出;如果这段时间内又收到新的元素,则会把原本 cache 住的元素释放掉并重新计时,不断反复。
本系列仅作为学习记录所用,摘录自30 天精通 Rxjs!强烈推荐!膜拜大佬!
标签:Observable,30,throttle,14,debounce,元素,console,log From: https://www.cnblogs.com/xiaojiuwow/p/18130131