首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >设置clearTimeOut

设置clearTimeOut
EN

Stack Overflow用户
提问于 2017-02-13 04:34:22
回答 1查看 857关注 0票数 2

让我知道设置clearTimeout和将相同变量设置为null之间的区别,null用于设置settimeout的id。

我在下面提到的underscore.js中看到了一个函数。

代码语言:javascript
复制
 function debounce(func, wait, immediate) {
    var timeout, args, context, timestamp, result;

    var later = function() {
        var last = new Date().getTime() - timestamp;

        if (last < wait && last >= 0) {
            timeout = setTimeout(later, wait - last);
        } else {
            timeout = null;
            if (!immediate) {
                result = func.apply(context, args);
                if (!timeout) context = args = null;
            }
        }
    };

    return function() {
        context = this;
        args = arguments;
        timestamp = new Date().getTime();
        var callNow = immediate && !timeout;
        if (!timeout) timeout = setTimeout(later, wait);
        if (callNow) {
            result = func.apply(context, args);
            context = args = null;
        }

        return result;
    };
};

它最终将"timeout“变量设置为"null”,而不是使用clearTimeOut。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-02-13 04:50:09

如果调度函数尚未运行,clearTimeout实际上会取消它。所以当它。

当计划时间在当前时间之前时,这段代码将超时设置为null,因此它将其设置为null以清除值,以便其他代码知道没有超时等待。因为这段代码不需要取消超时,所以它不使用clearTimeout

基本上,clearTimeout和取消变量之间没有任何关系。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42196727

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档