nodejs中异步编程的体现就是回调。
所谓异步编程体现的就是回调。
例如,我们可以一边读取文件,一边执行其他命令,在文件读取完成后,我们将文件内容作为回调函数的参数返回。这样在执行代码时就没有阻塞或等待文件 I/O 操作。
同步操作一般是先读取文件,读取完成后给到一个变量,然后继续执行程序,程序执行到需要这个文件数据的时候填入变量,这样一步一步的操作,相对于异步同时读取文件的时候就执行其他命令,节约了读取文件数据的时间,这样大大提高了nodejs的性能,在处理高并发请求的时候有着显著的性能提升。
同步阻塞代码实例
创建一个input.txt文件,写入“hello world”
var fs = require("fs");
var data = fs.readFileSync('input.txt');
console.log(data.toString());
console.log("程序执行结束!");
输出:
$ node main.js
hello world
程序执行结束!
异步非阻塞代码实例
创建一个input.txt文件,写入“hello world”
var fs = require("fs");
fs.readFile('input.txt', function (err, data) {
if (err) return console.error(err);
console.log(data.toString());
});
console.log("程序执行结束!");
输出:
$ node main.js
程序执行结束!
hello world
代码来自菜鸟教程