Debounce中的一个细节问题
来源:3-4 学习自定义Hook - 用useDebounce减少工程搜索请求频率

坡村小码哥
2021-03-02
问题
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和2处都是用函数wrap了一下callback,为什么需要这样做呢,直接把callback传给setTimeout和useEffect有什么问题?
- 为什么第一处用了箭头函数第二处用了匿名函数呢,是因为this绑定嘛,但是我没有相处很好的理由,还是说无所谓?
请老师解答,谢谢!
写回答
1回答
-
hi, 你看的很仔细
只要callback的类型是() => void,也就是只要返回void,直接传没有问题
这个无所谓,全写箭头函数就可以
022021-03-03
相似问题
老师 麻烦帮我解答一下这两个打印结果
回答 1
这个怎么解?
回答 1