Polymer 2.0 中的去抖器
Debouncer in Polymer 2.0
简单的问题,但找不到关于该主题的文档:Polymer 2.0 中是否有去抖器?如果可以,如何使用?
this.debounce
是 1.0 中的实例方法,但它似乎已经消失了。
提前致谢!
旧版 1.x 去抖器
您可以通过 Polymer.LegacyElementMixin
:
使用 1.x this.debounce()
方法
class XFoo extends Polymer.LegacyElementMixin(Polymer.Element) {
...
_onClick() {
this.debounce('myDebouncer', callback, 2000);
}
}
新 2.x 去抖器
2.0 等效项是 Polymer.Debouncer.debounce(debouncer, asyncModule, cb)
,其中:
debouncer
从 Polymer.Debouncer.debounce()
返回的 Polymer.Debouncer
实例,用于唯一标识去抖器作业。这相当于 1.x 去抖器作业名称字符串。这可以初始undefined
/null
创建一个新实例。
asyncModule
以下之一:
cb
asyncModule
完成时调用的回调
这个函数returns一个Polymer.Debouncer
instance, which has a cancel()
method, equivalent to 1.x this.cancelDebouncer(JOB_NAME)
。该实例应在下一次调用时传递给 debounce()
方法,以使去抖动正常工作。
用法示例:
class XFoo extends Polymer.Element {
...
_onClick() {
this._debouncer = Polymer.Debouncer.debounce(
this._debouncer, // initially undefined
Polymer.Async.timeOut.after(2000),
callback);
}
}
简单的问题,但找不到关于该主题的文档:Polymer 2.0 中是否有去抖器?如果可以,如何使用?
this.debounce
是 1.0 中的实例方法,但它似乎已经消失了。
提前致谢!
旧版 1.x 去抖器
您可以通过 Polymer.LegacyElementMixin
:
this.debounce()
方法
class XFoo extends Polymer.LegacyElementMixin(Polymer.Element) {
...
_onClick() {
this.debounce('myDebouncer', callback, 2000);
}
}
新 2.x 去抖器
2.0 等效项是 Polymer.Debouncer.debounce(debouncer, asyncModule, cb)
,其中:
debouncer
从
Polymer.Debouncer.debounce()
返回的Polymer.Debouncer
实例,用于唯一标识去抖器作业。这相当于 1.x 去抖器作业名称字符串。这可以初始undefined
/null
创建一个新实例。asyncModule
以下之一:
cb
asyncModule
完成时调用的回调
这个函数returns一个Polymer.Debouncer
instance, which has a cancel()
method, equivalent to 1.x this.cancelDebouncer(JOB_NAME)
。该实例应在下一次调用时传递给 debounce()
方法,以使去抖动正常工作。
用法示例:
class XFoo extends Polymer.Element {
...
_onClick() {
this._debouncer = Polymer.Debouncer.debounce(
this._debouncer, // initially undefined
Polymer.Async.timeOut.after(2000),
callback);
}
}