Node.js 异步编程的直接体现就是回调。
阻塞代码
var fs = require("fs");var data = fs.readFileSync(‘input.txt‘);console.log(data.toString());console.log("程序执行结束!");//readFileSync()同步的方式读取文件//执行结果如下$ node main.jsxxxxxxxxxxxxxxx(input.txt内容)程序执行结束!
非阻塞代码var fs = require("fs");fs.readFile(‘input.txt‘, function (err, data) { ???if (err) return console.error(err); ???console.log(data.toString());});console.log("程序执行结束!");
第一个实例在文件读取完后才执行完程序。 第二个实例我们不需要等待文件读取完,这样就可以在读取文件时同时执行接下来的代码,大大提高了程序的性能。
因此,阻塞是按顺序执行的,而非阻塞是不需要按顺序的,所以如果需要处理回调函数的参数,我们就需要写在回调函数内。
可以发现,与JavaScript中回调函数概念一致
node.js回调函数
原文地址:https://www.cnblogs.com/riwang/p/10323003.html