站長資訊網
        最全最豐富的資訊網站

        淺談Node.js中的事件循環

        本篇文章帶大家了解一下Node.js異步編程中的事件循環。事件循環是實現Node非阻塞I/O非常重要的一部分!事件循環,非阻塞I/O都是屬于LIBUV這個C++庫的底層能力。理解了事件循環,非阻塞I/O就理解了Node的異步是怎樣運行的!

        淺談Node.js中的事件循環

        Node 自身的執行模型——事件循環,正是它使得回調函數十分普遍。【推薦學習:《nodejs 教程》】

        在進程啟動時,Node 便會創建一個類似于 while(true)的循環,每執行一次循環體的過程我 們稱為 Tick。每個 Tick 的過程就是查看是否有事件待處理,如果有,就取出事件及其相關的回調 函數。如果存在關聯的回調函數,就執行它們。然后進入下個循環,如果不再有事件處理,就退 出進程

        淺談Node.js中的事件循環
        Tick 流程圖

        事件循環是實現 Node.js 非阻塞 I/O 非常重要的一部分! 事件循環,非阻塞 I/O 都是屬于 LIBUV 這個 C++ 庫的底層能力。 理解了 事件循環,非阻塞 I/O 就理解了 Node.js 的異步是怎樣運行的!

        通過代碼模擬 eventloop

        const eventloop = {   queue: [],   // 循環方法   loop() {     // 不停的檢測隊列是否還有未循環的消息     while (this.queue.length) {       const callback = this.queue.shift();       callback();     }      // 執行下一次循環     // 小知識點 JS的 this綁定     setTimeout(this.loop.bind(this), 50);   },   // 添加消息到隊列   add(callback) {     this.queue.push(callback);   }, };  eventloop.loop();  setTimeout(() => {   eventloop.add(() => {     console.log("第一個");   }); }, 500);  setTimeout(() => {   eventloop.add(() => {     console.log("第二個");   }); }, 800);

        贊(0)
        分享到: 更多 (0)
        網站地圖   滬ICP備18035694號-2    滬公網安備31011702889846號
        主站蜘蛛池模板: 久久精品九九亚洲精品| 91国在线啪精品一区| 精品蜜臀久久久久99网站| 狠狠精品干练久久久无码中文字幕| 精品国产乱码一区二区三区| 日韩AV毛片精品久久久| 99精品国产福利在线观看| 97视频在线观看这里只有精品 | 亚洲色图国产精品| 国产精品视频二区不卡| 日本VA欧美VA精品发布| 亚洲欧美日韩久久精品| 麻豆精品三级全部视频 | AV无码精品一区二区三区| 人妻精品久久无码专区精东影业| 欧美日韩精品系列一区二区三区国产一区二区精品 | 99热成人精品国产免男男| 国产精品久久久久影视不卡| 久久婷婷国产综合精品| 亚洲av无码精品网站| 亚洲精品无码久久久久久| 中文字幕在线精品视频入口一区| 日本一区二区三区精品国产| 日韩精品中文字幕第2页| 欧美精品丝袜久久久中文字幕| 久久精品国产亚洲7777| 久久久无码精品午夜| 日本精品一区二区三区在线视频| 久久国产精品免费一区二区三区| 精品福利一区二区三区| 国産精品久久久久久久| 久久精品国产精品亚洲下载| 日本精品视频在线观看| 午夜精品一区二区三区在线视| 亚洲韩精品欧美一区二区三区| 在线观看亚洲精品福利片| 亚洲AV永久纯肉无码精品动漫| 久久久久久国产精品免费无码 | 国产精品欧美久久久久无广告 | 久久国产乱子伦免费精品| 国产suv精品一区二区33|