Node.js blocking and non-blocking

什么是blocking?

举个例子

读取一个txt文本到网页。
先创建一个文本吧,起名"input.txt" 文本内容‘hello,world’
node如何读取本地文本?看这里
fs | Node.js API 文档
如下require("fs")表示引进fs模块,就是文件处理模块。并保存到txt变量里。
之后利用readFileSync()函数读取文本,参数就是文件路径。
data.toString()把缓存的数据读出来成文字形式

blocking

var txt = require("fs");

var txt = fs.readFileSync('input.txt'); 

console.log(data.toString()); 
console.log("程序执行结束!");

将上述文件保存为main.js
在终端执行

node main.js

结果是


Hello world!
程序执行结束!

non-blocking

var fs = require("fs");  
fs.readFile('input.txt', function (err, data) {
    if (err) return console.error(err);     
    console.log(data.toString());
});  
    console.log("程序执行结束!");

同理执行
结果

程序执行结束!
Hello world!

对比

blocking实例在文件读取完后才执行完程序。
nonblocking实例我们不需要等待文件读取完,这样就可以在读取文件时同时执行接下来的代码,大大提高了程序的性能。

你可能感兴趣的:(Node.js blocking and non-blocking)