当前位置:  开发笔记 > 编程语言 > 正文

发射FIRST的反弹功能然后去除后续动作

如何解决《发射FIRST的反弹功能然后去除后续动作》经验,为你挑选了1个好方法。

我到目前为止看到了防抖动功能的每一个示例阻止动作的发生多次在指定的时间跨度,然后执行该操作时,在指定的时间段过后,然后复位定时器一次.例如,$mdUtil.debounceAngular Material中包含的函数.

我正在寻找的是一个debounce函数,它可以立即执行动作,然后防止后续多个动作一直触发,直到计时器重置为止.这使得用户不必等到去抖动时间已经过去直到他们采取行动同时仍然实现去除动作的目标.

有没有人见过一个或有运气创造一个?

更新了一些更多的思考后,防抖动功能,应立即再火的动作,如果去抖功能被反跳的时间跨度内再次呼吁,应该解雇行动第二次在重置定时器之前第二个电话更改的任何值.



1> Henry Zou..:

编辑:添加jsbin实现

Lodash的去抖可以做到这两点.您必须指定它是领先还是尾随.

https://lodash.com/docs#debounce

_.debounce(sendMail, 300, {
  'leading': true,
  'trailing': false
})

你也可以在几行jsbin例子中编写你自己的去抖函数:

这将首先点击然后去除后续点击.

function debounce(func, delay) {
  console.log('debounce called with delay', delay);
  var timer = 0;
  return function debouncedFn() {
    if (Date.now() - timer > delay) {
      func();
    }
    timer = Date.now();
  };
}

推荐阅读
雨天是最美
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有