1. 程式人生 > >阻塞程式碼與非阻塞程式碼例項

阻塞程式碼與非阻塞程式碼例項

阻塞程式碼例項

//阻塞程式碼例項
var fs=require('fs');
var data=fs.readFileSync('input.txt');
console.log(data.toString());
console.log("程式執行完畢!");

非阻塞程式碼例項

//非阻塞程式碼例項
var fs = require('fs');
fs.readFile('input.txt',function(err,data){
	if(err) return console.error(err);
	console.log(data.toString());
});
console.log("程式執行完畢!");

文字內容

我就是一個文字

執行檔案

以上兩個例項我們瞭解了阻塞與非阻塞呼叫的不同。第一個例項在檔案讀取完後才執行完程式。第二個例項我們不需要等待檔案讀取完,這樣就可以在讀取檔案時同時執行接下來的程式碼,大大提高了程式的效能。

因此,阻塞是按順序執行的,而非阻塞是不需要按順序的,所以如果需要處理回撥函式的引數,我們就需要寫在回撥函式內。