如何用Observer聚合物去抖动

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何用Observer聚合物去抖动相关的知识,希望对你有一定的参考价值。

我试图在Web组件完成加载时运行getResponse。但是,当我尝试运行它时,debounce函数只是作为异步延迟,并在5000 ms后运行4次。

static get properties() {
  return {
    procedure: {
      type: String,
      observer: 'debounce'
    }
  }
}

debounce() {
  this._debouncer = Polymer.Debouncer.debounce(this._debouncer, Polymer.Async.timeOut.after(5000), () => {
    this.getResponse();
  });
}

getResponse() {
  console.log('get resp');
}

在加载元素时,有什么必要让getResponse运行一次?

答案

你确定你想要使用debouncer吗?你可以使用connectedCallBack来获得一个时间事件

class DemoElement extends htmlElement {
  constructor() {
    super();
    this.callStack = 'constructor->';
  }
  
  connectedCallback() {
    this.callStack += 'connectedCallback';
    console.log('rendered');
    fetch(this.fakeAjax()).then((response) => {
      // can't do real ajax request here so we fake it... normally you would do 
      // something like this.innerHTML = response.text();
      // not that "rendered" get console logged before "fetch done"
      this.innerHTML = `
        <p>${this.callStack}</p>
        <p>${response.statusText}</p>
      `;
      console.log('fetch done');
    }).catch(function(err) {
      console.log(err); // Error :(
    });
  }
  
  fakeAjax() {
    return window.URL.createObjectURL(new Blob(['empty']));
  };
}
customElements.define('demo-element', DemoElement);
<demo-element></demo-element>

以上是关于如何用Observer聚合物去抖动的主要内容,如果未能解决你的问题,请参考以下文章

如何用聚合值注释 seaborn barplot

Spring Data MongoDB:如何用 Spring Aggregation 描述聚合 $merge?

如何用ps 制作地图中的铁路

SqlServer如何用Sql语句自定义聚合函数

如何用 ViewPager 中的另一个片段替换 Android 片段?

Android NavController:如何用相同的动作打开相同的片段