wind-stone / blog

学习记录、文档
16 stars 6 forks source link

防抖和节流,lodash源码解析部分Todo完善 #303

Closed qianmengqwq closed 1 month ago

qianmengqwq commented 9 months ago

https://blog.windstone.cc/interview/javascript/performance-optimization/debounce-throttle/#lodash-throttle 这篇博文似乎没有对应到issue里

对于todo部分,第三种情况对应的是修改了系统时间(回调)

new Date()拿到的是系统时间而不是真实时间

 return (
            lastCallTime === undefined                       // 满足条件一:从未调用过 debounced 函数
            || (timeSinceLastCall >= wait)                   // 满足条件二:距离上一次调用 debounced 函数的时间超过了 wait
            || (timeSinceLastCall < 0)                       // 满足条件三:TODO: 这是什么场景?
            || (maxing && timeSinceLastInvoke >= maxWait)    // 满足条件四:距离上一次调用 func 函数已超过了 maxWait 时间
wind-stone commented 5 months ago

@qianmengqwq 即使修改了系统时间导致 timeSinceLastCall < 0,也没办法判断是否要执行吧?