1. 程式人生 > 程式設計 >node事件迴圈和process模組例項分析

node事件迴圈和process模組例項分析

本文例項講述了node事件迴圈和process模組。分享給大家供大家參考,具體如下:

1.node.js事件迴圈

node.js事件可以繼續插入事件,如果有事件就繼續執行下去,每一次事件處理結束後等待下一個事件的發生;沒有要處理的事件了,那整個就結束了;

setTimeout插入一個 計時器事件,時間單位為毫秒;

// 插入一個事件,讓它多長(毫秒)時間以後執行一次
setTimeout(function() {
  console.log("set time out");
},3 * 1000); //3秒後執行顯示 set time out
  setInterval插入一個不斷迴圈的計時器事件;
// 計時器事件,每隔一段事件觸發一次,time的單位是毫秒
setInterval(function () {
  console.log("get time doing");
},2 * 1000); // 每間隔2秒呼叫一次
//結果為:
//get time doing
//get time doing
//get time doing
//....

2.process模組屬性和事件

process模組用來與當前程序互動,獲取相關作業系統相關資訊;process是全域性變數不需要require匯入模組;

屬性:process.pid,process.version,process.platform,process.title,process.argv,process.execPath,process.stdout,process.stdin,process.stderr,process.env

// process是node的一個全域性模組
console.log(process.pid); //11544
console.log(process.version); //V8.9.0
console.log(process.platform); //WIN32
console.log(process.title); //D:\Program Files\nodejs\node.exe
// 在啟動的時候,我們可以往程式裡面傳入引數,//引數都是字串
console.log(process.argv); //結構為陣列
//Array(2) ["D:\Program Files\nodejs\node.exe","c:\Users\Administrator\Desktop\main1.js"]
 

exit事件,process.on()

// 當我們的node在每次退出的時候,都會丟擲一個exit這樣一個事件,如果我們使用者監聽這個事件,那麼
// 當有exit事件發生的時候,我們之前設定的回掉函式,將會被呼叫;
// process.on來監聽事件
process.on("exit",function() {
  console.log("now node exit!!!!");
});
  uncaughtException事件 function(err){};
// 當我們發生了一個未知的異常的時候,我們呼叫這個回掉函式;
// node 停止處理當前這個事件,繼續等待下一個事件的處理,不會整個退出,
// 伺服器就不會隨意的奔潰
// 可以把這個錯誤,儲存起來,方便我們去查詢
process.on("uncaughtException",function(err) {
  console.log("uncaughtException called ",err);
});
// 當我們的程式,如果執行的時候有異常,那麼這個時候,我們可以通過捕獲異常,
// 如果說我們沒有捕獲的異常,這個uncaughtException
// 如果發生uncaughtException,node是會退出的;
// 沒有主動捕獲,所以javascript直譯器,他是不會繼續執行的;

處理的時候遇到了異常,如果這個異常監聽,那麼就繼續處理下一個事件,否則直接停止退出node ;

3.process重要方法

progress.cwd; // 獲取當前的工作目錄

progress.uptime // 獲取當前程序執行的時間

progress.chdir // 設定當前的工作目錄;

progress.nextTick // 下一次迴圈的時候呼叫;

// current work director 當前的工作目錄
// ./ ---> C:\Home\workspace\node_js
process.chdir("C:\\Home\\workspace");
// 修改我們的工作目錄,工作目錄預設你的node是在哪個目錄下啟動的,就是那個目錄為你的工作目錄
console.log(process.cwd()); //c:\Users\Administrator\Desktop
// while處理時間,進入等待時間之前呼叫,完成後,去事件裡面來等待新的事件發生;
process.nextTick(function() {
  console.log("nextTick");
});

希望本文所述對大家node.js程式設計有所幫助。