冴羽的throttle节流文章中例子,setTimeout函数与throttle函数的执行顺序。

看鱼游
  • 1
新手上路,请多包涵

今天在看大神节流的文章,但是博客例子中的一段代码无法理解

const throttle = function(func, delay) {
    let timer,
        prev = 0;
    return function(){
        const context = this;
        const args = arguments;
        const now = +new Date();
        const remaining = delay - (now - prev);
        if (remaining <= 0) {
            prev = now;
            func.apply(context, args);    
        } else if(!timer) {
            timer = setTimeout(() => {
                prev = +new Date();
                timer = null;
                func.apply(context, args);    
            }, remaining)    
        }
    }
}

image.png

在第3秒时,是只执行了第1秒设置的setTimeout函数吗(此时第1秒设置的函数时间到了)?没有执行整个节流函数?
原文:https://github.com/mqyqingfen...
https://juejin.cn/post/684490...

回复
阅读 55
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
你知道吗?

宣传栏