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);
  }
}

codepen

新 2.x 去抖器

2.0 等效项是 Polymer.Debouncer.debounce(debouncer, asyncModule, cb),其中:

这个函数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);
  }
}

codepen