网站首页  汉语字词  英语词汇  考试资料  写作素材  旧版资料

请输入您要查询的考试资料:

 

标题 快速掌握Node.js中setTimeout和setInterval的使用方法
内容
    这篇文章主要为大家介绍了快速掌握Node.js中setTimeout和setInterval的使用方法,感兴趣的小伙伴们可以参考一下
    Node.js和js一样也有计时器,超时计时器、间隔计时器、及时计时器,它们以及process.nextTick(callback)函数来实现事件调度。今天先学下setTimeout和setInterval的使用。
    一、setTimeout超时计时器(和GCD中的after类似)
    在node.js中可以使用node.js内置的setTimeout(callback,delayMillSeconds,[args])方法。当调用setTime()时回调函数会在delayMillSeconds后
    执行.setTime() 会返回一个定时器对象ID,可以在delayMillSeconds到期前将ID传给clearTimeout(timeoutId)来取消。
    function myfunc(){
     console.log("myfunc");
    };
    var mytimeout=setTimeout(myfunc,1000);
    clearTimeout(mytimeout);
    ----------------------------------------------------------
    "C:\Program Files (x86)\JetBrains\WebStorm 11.0.3\bin\runnerw.exe" F:\nodejs\node.exe timer.js
    Process finished with exit code 0
    如果将clearTimeout(mytimeout);这行注释之后可以看到是会执行myfunc()。
    "C:\Program Files (x86)\JetBrains\WebStorm 11.0.3\bin\runnerw.exe" F:\nodejs\node.exe timer.js
    myfunc
    Process finished with exit code 0
    二、setInterval间隔计时器(和GCD中的dispatch_source_t或NSTimer类似)
    间隔计时器用来按定期的时间间隔来执行工作.和setTimeout类似,node.js中内置setInterval(callback,delayMilliSecond,[args])来创建并返回定时器对象Id,通过clearInterval()来取消。
    /**
     * Created by Administrator on 2016/3/11.
     */
    function myfunc(Interval){
     console.log("myfunc "+Interval);
    }
    var myInterval=setInterval(myfunc,1000,"Interval");
    function stopInterval(){
     clearTimeout(myInterval);
     //myInterval.unref();
    }
    setTimeout(stopInterval,5000);
    上面代码是创建setInterval的回调函数myfunc,参数为Interval,setInterval每隔1s执行一次,setTimeout是在5秒之后执行,它的回调函数让间隔计时器取消。
    "C:\Program Files (x86)\JetBrains\WebStorm 11.0.3\bin\runnerw.exe" F:\nodejs\node.exe Interval.js
    myfunc Interval
    myfunc Interval
    myfunc Interval
    myfunc Interval
    Process finished with exit code 0
    三、从事件循环中取消定时器引用
    当事件队列中仅存在定时器回调函数时,如果不希望再执行它们,可以使用setInterval和setTimeout返回对象的unref()函数来通知事件循环不要继续。
    当unref()和setTimeout结合使用,要用独立计时器来唤醒事件循环,大量使用对性能也会产生影响,应尽量少用。
    四、setTimeout和setInterval执行时间是不精确的
    它们是间隔一定时间将回调添加到事件队列中,执行也不是太精确
    function simpleTimeout(consoleTime)
    {
     console.timeEnd(consoleTime);
    }
    console.time("twoSecond");
    setTimeout(simpleTimeout,2000,"twoSecond");
    console.time("oneSecond");
    setTimeout(simpleTimeout,1000,"oneSecond");
    console.time("fiveSecond");
    setTimeout(simpleTimeout,5000,"fiveSecond");
    console.time("50MillSecond");
    setTimeout(simpleTimeout,50,"50MillSecond");
    以上代码多执行几次输出的结果也是不一样的。
    "C:\Program Files (x86)\JetBrains\WebStorm 11.0.3\bin\runnerw.exe" F:\nodejs\node.exe timer.js
    50MillSecond: 51ms
    oneSecond: 1000ms
    twoSecond: 2002ms
    fiveSecond: 5001ms
    Process finished with exit code 0
    以上就是本文的全部内容,希望对大家学习Node.js中setTimeout和setInterval的使用方法有所帮助。
随便看

 

在线学习网考试资料包含高考、自考、专升本考试、人事考试、公务员考试、大学生村官考试、特岗教师招聘考试、事业单位招聘考试、企业人才招聘、银行招聘、教师招聘、农村信用社招聘、各类资格证书考试等各类考试资料。

 

Copyright © 2002-2024 cuapp.net All Rights Reserved
更新时间:2025/5/16 0:46:51