去抖作业名称 - 作业名称问题

Debounce job name - job name issue

使用聚合物 1.0...

去抖动方法要求作业名称是某种对象。我得到 Cannot read property 'foo' of undefined

documentation开始,作业名称是一个字符串。我以为作业名称只是为了稍后引用 debounce 对象,但我想我错了。

我在这里做错了什么?请注意,这在自定义元素之外,所以这就是我使用 Polymer.Base

的原因
function scrollSnap() {
  Polymer.Base.debounce('foo', ()=> {
    if (app.selected === 'portfolio') {
      if (panel.scroller.scrollTop > 75 && panel.scroller.scrollTop < 200) {
        panel.scroller.scrollTop = 400;
      } else if  (panel.scroller.scrollTop > 350 && panel.scroller.scrollTop < 400) {
        panel.scroller.scrollTop = 0;
      }
    }
  }, 1000)
} 

发生这种情况是因为内部去抖动映射未初始化,因此当 Polymer 尝试进行去抖动名称查找时,它会取消引用 uninitialized/undefined 数组。

由于此去抖动器调用是在 Polymer 元素外部使用的,因此您必须手动调用通常在元素初始化时完成的设置函数(即 _setupDebouncers()):

Polymer.Base._setupDebouncers();

for (let i=0; i<100; i++) {
  Polymer.Base.debounce('foo', () => console.log('debounced'), 1000);
}

demo