js如何限制函数触发间隔

现小程序连接蓝牙获取数据,蓝牙数据每秒回调20次,在回调函数中写对应的数据变动,如何设置指定时间内修改一次数据,而不是现在的每秒修改20次。

阅读 2.2k
2 个回答

函数节流或防抖

可以来个节流函数包一下你的回调。

function throttle(func, time = 500) {
  let canRun = true;

  return function() {
    if (canRun) {
      func.apply(this, arguments);
      canRun = false;
      setTimeout(function() {
        canRun = true;
      }, time);
    }
  };
}
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题