angular7 截流(rxjs)

516 阅读1分钟
//截流事件的申明
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');
}