请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

Debounce中的一个细节问题

问题

Debounce的原理我已经理解了,谢谢老师!但是我在看代码的时候我发现两个细节:

export const useMount = (callback) => {
  useEffect(() => {
    callback(); // 1
  }, []);
};

export const useDebounce = (callback, delay) => {
  let timeout;

  if (timeout) {
    clearTimeout(timeout);
  }
  timeout = setTimeout(function() = {
    callback(); // 2
  }, delay);
};
  1. 注释的1和2处都是用函数wrap了一下callback,为什么需要这样做呢,直接把callback传给setTimeout和useEffect有什么问题?
  2. 为什么第一处用了箭头函数第二处用了匿名函数呢,是因为this绑定嘛,但是我没有相处很好的理由,还是说无所谓?

请老师解答,谢谢!

正在回答

1回答

hi, 你看的很仔细

  1. 只要callback的类型是() => void,也就是只要返回void,直接传没有问题

  2. 这个无所谓,全写箭头函数就可以

0 回复 有任何疑惑可以回复我~
  • 提问者 坡村小码哥 #1
    回得真快!谢谢老师,话说您是我慕课见过英文说的最标准的了,233
    回复 有任何疑惑可以回复我~ 2021-03-02 09:04:24
  • Nolan 回复 提问者 坡村小码哥 #2
    哈哈谢谢!
    回复 有任何疑惑可以回复我~ 2021-03-03 09:58:13
问题已解决,确定采纳
还有疑问,暂不采纳
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号