node.js的異步特性就體如今回調上。
回調函數是在完成任務後就會被調用,node中使用了大量的回調函數。
例如:咱們能夠一邊讀取文件,一邊執行其餘命令,在文件讀取完成後,咱們將文件的內容做爲回調函數的參數返回,所以不會出現阻塞或等待文件I/O操做,這樣能夠處理大併發量請求。
實例
1.建立文件input.txt,內容以下node
百度網址:www.baidu.com
2.編寫main.js文件,內容以下併發
//載入fs模塊 var fs = require("fs"); //同步讀取input.txt中的內容 var data = fs.readFileSync('input.txt'); //打印出讀取到的內容 console.log(data.toString()); //打印出結束s console.log("結束");
3.執行以上代碼,以下異步
注意:中文"百度網址"沒有打印出來。如上是同步執行的。函數
非阻塞代碼實例
修改main.js代碼以下ui
//載入fs模塊 var fs = require("fs"); //異步讀取input.txt中的內容 //回調函數function() fs.readFile('input.txt',function(err,data){ //若是出錯,打印出出錯信息 if (err) {return console.error(err);} //讀取完成後,將讀取的內容賦值給data,打印出讀取到的內容 console.log(data.toString()); }); //打印出結束 console.log("結束");
打印結果以下
備註:很明顯觀察到結果是異步的code