【发布时间】:2017-04-02 21:02:00
【问题描述】:
我有以下调用 lodash debounce 函数的代码:
@HostListener("window:scroll", [])
onWindowScroll() {
if (myBoolean)
_.debounce(this.onScrollDown(), 1500, false);
}
}
private onScrollDown() {
console.log("onScrollDown")
}
但我在控制台中收到此错误:
Argument of type 'void' is not assignable to parameter of type 'Function'.
以及浏览器上的以下内容:
TypeError: Expected a function
at Function.debounce
顺便说一句,我正在使用打字稿
【问题讨论】:
-
您没有将函数传递给 .debounce?您正在传递一个返回 undefined 的被调用函数
-
我现在这样使用它,但仍然无法正常工作:
_.debounce( ()=> { console.log("onScrollDown") }, 1500, {}); -
定义“无效”。
-
@JBNizet 不在第一个参数中打印 console.log
-
每次滚动时,您都在创建一个去抖函数,但您对这个创建的函数没有任何作用。它没有存储在任何地方,也从未调用过。您可能想要做的是一劳永逸地创建一个去抖动函数,并在每次滚动时调用该去抖动函数。
标签: angular typescript lodash angular2-template angular2-directives