我有这个方法,在滚动表时会被多次调用:
setViewportRange(firstRow: number, lastRow: number): void {
this.getViewport(firstRow, lastRow).subscribe(message => {
console.log(message);
});
}
我没有对setViewportRange方法的调用的控制,但是我需要对其进行反跳操作。所以我用lodash的debounce函数创建了这个debouncedGetViewport方法:
setViewportRange(firstRow: number, lastRow: number): void {
this.debouncedGetViewport(firstRow, lastRow);
}
debouncedGetViewport = debounce((firstRow, lastRow) => {
return this.getViewport(firstRow, lastRow).subscribe(message => {
console.log(message);
});
}, 1000);
有效!但是一位同事问我为什么不使用RxJ的反跳功能。所以我试图用RxJs实现它,但是我无法使它工作。您能帮我了解为什么这不起作用吗?我想我误会了。
setViewportRange(firstRow: number, lastRow: number): void {
this.debouncedGetViewport(firstRow, lastRow);
}
debouncedGetViewport = (firstRow, lastRow) => {
return this.getViewport(firstRow, lastRow)
.pipe(debounceTime(1000))
.subscribe(message => {
console.log(message);
});
};
谢谢!