web-dev-qa-db-ja.com

Polymer 2.0のデバウンサー

簡単な質問ですが、この件に関するドキュメントはありません:Polymer 2.0?)にデバウンサーはありますか?もしそうなら、どのように使用できますか?this.debounceは1.0のインスタンスメソッドでしたが、消えたようです。

前もって感謝します!

13
CedricLaberge

レガシー1.xデバウンサー

1.x this.debounce() メソッドは_Polymer.LegacyElementMixin_経由で使用できます。

_class XFoo extends Polymer.LegacyElementMixin(Polymer.Element) {
  ...
  _onClick() {
    this.debounce('myDebouncer', callback, 2000);
  }
}
_

codepen

新しい2.xデバウンサー

2.0に相当するものは Polymer.Debouncer.debounce(debouncer, asyncModule, cb) です。ここで、

この関数は _Polymer.Debouncer_ インスタンスを返します。このインスタンスには、1.x cancel() と同等の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

31
tony19