最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

快速掌握Node.js中setTimeout和setInterval的使用方法

 更新時(shí)間:2016年03月21日 16:50:49   作者:小崔的筆記本  
這篇文章主要為大家介紹了快速掌握Node.js中setTimeout和setInterval的使用方法,感興趣的小伙伴們可以參考一下

Node.js和js一樣也有計(jì)時(shí)器,超時(shí)計(jì)時(shí)器、間隔計(jì)時(shí)器、及時(shí)計(jì)時(shí)器,它們以及process.nextTick(callback)函數(shù)來實(shí)現(xiàn)事件調(diào)度。今天先學(xué)下setTimeout和setInterval的使用。

一、setTimeout超時(shí)計(jì)時(shí)器(和GCD中的after類似)

在node.js中可以使用node.js內(nèi)置的setTimeout(callback,delayMillSeconds,[args])方法。當(dāng)調(diào)用setTime()時(shí)回調(diào)函數(shù)會(huì)在delayMillSeconds后

執(zhí)行.setTime() 會(huì)返回一個(gè)定時(shí)器對象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);這行注釋之后可以看到是會(huì)執(zhí)行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間隔計(jì)時(shí)器(和GCD中的dispatch_source_t或NSTimer類似)

間隔計(jì)時(shí)器用來按定期的時(shí)間間隔來執(zhí)行工作.和setTimeout類似,node.js中內(nèi)置setInterval(callback,delayMilliSecond,[args])來創(chuàng)建并返回定時(shí)器對象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);

上面代碼是創(chuàng)建setInterval的回調(diào)函數(shù)myfunc,參數(shù)為Interval,setInterval每隔1s執(zhí)行一次,setTimeout是在5秒之后執(zhí)行,它的回調(diào)函數(shù)讓間隔計(jì)時(shí)器取消。

"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

三、從事件循環(huán)中取消定時(shí)器引用

當(dāng)事件隊(duì)列中僅存在定時(shí)器回調(diào)函數(shù)時(shí),如果不希望再執(zhí)行它們,可以使用setInterval和setTimeout返回對象的unref()函數(shù)來通知事件循環(huán)不要繼續(xù)。

當(dāng)unref()和setTimeout結(jié)合使用,要用獨(dú)立計(jì)時(shí)器來喚醒事件循環(huán),大量使用對性能也會(huì)產(chǎn)生影響,應(yīng)盡量少用。

四、setTimeout和setInterval執(zhí)行時(shí)間是不精確的

它們是間隔一定時(shí)間將回調(diào)添加到事件隊(duì)列中,執(zhí)行也不是太精確

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");

以上代碼多執(zhí)行幾次輸出的結(jié)果也是不一樣的。

"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

以上就是本文的全部內(nèi)容,希望對大家學(xué)習(xí)Node.js中setTimeout和setInterval的使用方法有所幫助。

相關(guān)文章

  • 快速搭建Node.js(Express)用戶注冊、登錄以及授權(quán)的方法

    快速搭建Node.js(Express)用戶注冊、登錄以及授權(quán)的方法

    這篇文章主要介紹了快速搭建Node.js(Express)用戶注冊、登錄以及授權(quán),小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2019-05-05
  • express如何使用session與cookie的方法

    express如何使用session與cookie的方法

    本篇文章主要介紹了express如何使用session與cookie的方法,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2018-01-01
  • 使用node操作SQLite的方法

    使用node操作SQLite的方法

    SQLite是一種輕量級的嵌入式關(guān)系型數(shù)據(jù)庫管理系統(tǒng),它以庫的形式存在,可以嵌入到應(yīng)用程序中,使用Node.js操作SQLite數(shù)據(jù)庫有多種方式,其中常用的方式包括使用sqlite3模塊、sequelize模塊和knex模塊,本文將詳細(xì)的給大家介紹這幾種方式,需要的朋友可以參考下
    2023-10-10
  • 從零學(xué)習(xí)node.js之詳解異步控制工具async(八)

    從零學(xué)習(xí)node.js之詳解異步控制工具async(八)

    sync是一個(gè)流程控制工具包,提供了直接而強(qiáng)大的異步功能?;贘avaScript為Node.js設(shè)計(jì),同時(shí)也可以直接在瀏覽器中使用。下面這篇文章主要介紹了node.js之異步控制工具async的相關(guān)資料,需要的朋友可以參考下。
    2017-02-02
  • Node.js JSON模塊用法實(shí)例分析

    Node.js JSON模塊用法實(shí)例分析

    這篇文章主要介紹了Node.js JSON模塊用法,結(jié)合實(shí)例形式分析了node.js json模塊的基本語法,以及使用json模塊進(jìn)行json格式數(shù)據(jù)解析的相關(guān)操作技巧,需要的朋友可以參考下
    2019-01-01
  • Node事件的監(jiān)聽與觸發(fā)的實(shí)現(xiàn)

    Node事件的監(jiān)聽與觸發(fā)的實(shí)現(xiàn)

    Node.js是由事件驅(qū)動(dòng)的,每個(gè)任務(wù)都可以當(dāng)作一個(gè)事件來處理,本文主要介紹了Node事件的監(jiān)聽與觸發(fā)的實(shí)現(xiàn),具有一定的參考價(jià)值,感興趣的可以了解一下
    2024-04-04
  • 如何自定義node版本,實(shí)現(xiàn)node多版本控制方式

    如何自定義node版本,實(shí)現(xiàn)node多版本控制方式

    這篇文章主要介紹了如何自定義node版本,實(shí)現(xiàn)node多版本控制方式,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-04-04
  • 淺談如何把Node項(xiàng)目部署到服務(wù)器上

    淺談如何把Node項(xiàng)目部署到服務(wù)器上

    本文主要介紹了淺談如何把Node項(xiàng)目部署到服務(wù)器上,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-02-02
  • nodejs一個(gè)簡單的文件服務(wù)器的創(chuàng)建方法

    nodejs一個(gè)簡單的文件服務(wù)器的創(chuàng)建方法

    這篇文章主要介紹了nodejs一個(gè)簡單的文件服務(wù)器的創(chuàng)建方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-09-09
  • Node.js基礎(chǔ)入門之回調(diào)函數(shù)及異步與同步詳解

    Node.js基礎(chǔ)入門之回調(diào)函數(shù)及異步與同步詳解

    Node.js是一個(gè)基于Chrome?V8引擎的JavaScript運(yùn)行時(shí)。類似于Java中的JRE,.Net中的CLR。本文將詳細(xì)為大家介紹Node.js中的回調(diào)函數(shù)及異步與同步,感興趣的可以了解一下
    2022-03-03

最新評論

蓝田县| 长汀县| 葫芦岛市| 石屏县| 新宾| 河津市| 山西省| 朔州市| 鄂伦春自治旗| 江油市| 涞水县| 吴忠市| 辛集市| 阿克苏市| 锦州市| 乌恰县| 屯昌县| 泰和县| 淮滨县| 绍兴县| 达尔| 保靖县| 大丰市| 岚皋县| 沁阳市| 无极县| 雷州市| 新沂市| 玛纳斯县| 兴业县| 浮梁县| 阿图什市| 韶山市| 永济市| 汝南县| 景宁| 莲花县| 玛多县| 闵行区| 大足县| 融水|