throttle: 让一个函数无法在短时间内连续调用,只有当上一次函数执行后过了指定的时间间隔,才能进行下一次该函数的调用。常用于连续点击按钮只让第一次生效
debounce:触发事件后函数不会立即执行,而是在 n 秒后执行,如果在 n 秒内又触发了事件,则会重新计算函数执行时间(n 秒内连续点击只会在n秒后执行一次)
常用于搜索时文本不断变化导致调用多次接口 或 页面有多少个接口,每个接口获取数据后需要刷新UI,用 debounce 操作符即可
PublishSubject 将对观察者发送订阅后产生的元素,而在订阅前发出的元素将不会发送给观察者
ReplaySubject 将对观察者发送全部的元素,无论观察者是何时进行订阅的。
BehaviorSubject: 当观察者对 BehaviorSubject 进行订阅时,它会将源 Observable
中最新的元素发送出来(如果不存在最新的元素,就发出默认元素)。然后将随后产生的元素发送出来。
参考: RxSwift 中文文档