Polymer 2.0中的去抖动器

时间:2017-03-13 20:50:48

标签: polymer polymer-2.x

简单的问题,但没有关于这个主题的文件:Polymer 2.0中是否有debouncer?如果是这样,它怎么用? this.debounce是1.0中的实例方法,但似乎已经消失了。

提前致谢!

1 个答案:

答案 0 :(得分:28)

Legacy 1.x debouncer

您可以通过Polymer.LegacyElementMixin

使用1.x this.debounce()方法
class XFoo extends Polymer.LegacyElementMixin(Polymer.Element) {
  ...
  _onClick() {
    this.debounce('myDebouncer', callback, 2000);
  }
}

codepen

新2.x debouncer

2.0当量是Polymer.Debouncer.debounce(debouncer, asyncModule, cb),其中:

此函数返回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);
  }
}

codepen