zoukankan      html  css  js  c++  java
  • 一个简单的setTimeout的问题

    经常使用 setTimeout,并且自己认为也算比较熟悉这个函数的用法。

    不过今天碰到了,突然发现自己没有意识到这个问题。于是作为一个记录点,进行巩固一下。

    var timer = window.setTimeout(function(){
        console.log("this is setTimeout");
        console.log(timer);
    }, 1000);
    
    

     这里我并没有直接写出答案。此处并不是一个面试题之类的。因为经常需要用到。如下的写法

    if (timer) {
        window.clearTimeout(timer);  
    }
    console.log(clearRet);
    
    console.log(timer);

      此处会去清空 timeout,虽然进行了clearTimeout,但是 timer 还是有值的。 是一个具体的number

    因为第一次初始化的时候, timer 就已经有了。只是通过此 number(timeout的句柄)进行了 clear;

    所以还需要进行如下的赋值,才是正确的写法。

    window.clearTimeout(timer);
    timer = null;
    

      此时,进行 if (timer) 的判断才是较为合理的。

    此处只是一个小细节,但是经常会忽略,导致一些意想不到的问题。

  • 相关阅读:
    Linux 文件特殊权限
    Linux ACL权限
    Linux 用户管理命令
    Asm.js: Javascript的编译目标
    《Zero to One》的一些读书笔记
    Tomcat架构(四)
    Tomcat架构(三)
    Tomcat架构(二)
    Tomcat 架构 (一)
    MATERIAL DESIGN学习笔记
  • 原文地址:https://www.cnblogs.com/asdfq/p/6759612.html
Copyright © 2011-2022 走看看