简单的问题,但没有关于这个主题的文件:Polymer 2.0中是否有debouncer?如果是这样,它怎么用?
this.debounce
是1.0中的实例方法,但似乎已经消失了。
提前致谢!
答案 0 :(得分:28)
您可以通过Polymer.LegacyElementMixin
:
this.debounce()
方法
class XFoo extends Polymer.LegacyElementMixin(Polymer.Element) {
...
_onClick() {
this.debounce('myDebouncer', callback, 2000);
}
}
2.0当量是Polymer.Debouncer.debounce(debouncer, asyncModule, cb)
,其中:
debouncer
从Polymer.Debouncer
返回的Polymer.Debouncer.debounce()
的实例,用于唯一标识去抖动作业。这相当于1.x去抖动作业名称字符串。最初可以undefined
/ null
创建新实例。
asyncModule
以下其中一项:
cb
回调以在asyncModule
完成
此函数返回Polymer.Debouncer
个实例,该实例具有cancel()
方法,相当于1.x this.cancelDebouncer(JOB_NAME)
。该实例应在下一次调用时传递给debounce()
方法,以使debouncing正常工作。
示例用法:
class XFoo extends Polymer.Element {
...
_onClick() {
this._debouncer = Polymer.Debouncer.debounce(
this._debouncer, // initially undefined
Polymer.Async.timeOut.after(2000),
callback);
}
}