09.debounce 方法

Posted 前端小智@大迁世界

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了09.debounce 方法相关的知识,希望对你有一定的参考价值。

使用方便有用的方法,以减少代码行数,提高我们的工作效率,增加我们的摸鱼时间。

debounce 方法

创建一个debdeprecated函数,该函数将延迟调用所提供的函数,直到自上次调用该函数后至少经过ms毫秒。

debounce 想必有开发经验前端基本都用过,在这里就不多解释,直接来看实现。

实现

const debounce = (fn, ms = 0) => {
  let timeoutId;
  return function(...args) {
     clearTimeout(timeoutId);
  }
}

说明一下:

  • 每次调用debounced函数时,用``clearTimeout()清除当前的待定的timeout,并使用setTimeout()创建一个新的timeout,将调用函数的时间推迟到至少ms毫秒之后。

  • 使用function.prototype.apply()this上下文应用于函数并提供必要的参数。

  • 省略第二个参数,ms,将使用默认值0ms

大白话翻译一下就是,如果当前函数被调用,在指定ms时间内,如果还有函数进来,则清到已定时的函数,重新生成一个新的定时

以上是关于09.debounce 方法的主要内容,如果未能解决你的问题,请参考以下文章

VSCode自定义代码片段10—— 数组的响应式方法

Android课程---Android Studio使用小技巧:提取方法代码片段

Sleep() 方法后的代码片段没有被执行

如何通过代码设置片段标签?

编写代码片段的更简洁的方法

简单的方法来分享/讨论/协作的代码片段?