在RxJS中,防抖(debounce)和节流(throttle)是两种常用的操作符,用于控制函数执行的频率。
防抖:指定时间内只执行最后一次函数调用。
节流:指定时间内只执行第一次或最后一次函数调用。
以下是防抖和节流的实例代码:
防抖:
javascript
import { fromEvent } from 'rxjs';
import { debounceTime } from 'rxjs/operators';
const input = document.getElementById('myInput');
fromEvent(input, 'input')
.pipe(debounceTime(2000)) // 在2秒内输入将不会触发
.subscribe(event => {
console.log('Input value:', event.target.value);
});
节流:
javascript
import { fromEvent } from 'rxjs';
import { throttleTime } from 'rxjs/operators';
const input = document.getElementById('myInput');
fromEvent(input, 'input')
.pipe(throttleTime(2000)) // 在2秒内连续输入只在每2秒触发一次
.subscribe(event => {
console.log('Input value:', event.target.value);
});
在实际应用中,根据需要选择合适的防抖或节流策略。