//截流事件的申明
eventChange: Subject<string> = new Subject<string>();
...
ngOnInit() {
//截流监听
this.eventChange
.pipe(debounceTime(300))//rxjs的方法
.pipe(distinctUntilChanged())//rxjs的方法
.subscribe(eventId => {
// 监听数据变化,例如300毫秒触发50次,这里只会触发一次
console.log(eventId)
});
}
...
/**
*例如键盘事件,鼠标事件,或者屏幕resize等短时间触发很多次的事件
*/
keyDown() {
//截流赋值
this.eventChange.next('test');
}