回调函数
回调函数就是一个通过函数指针调用的函数。如果你把函数的指针(地址)作为参数传递给另一个函数,当这个指针被用为调用它所指向的函数时,我们就说这是回调函数。
在JavaScript中,回调函数具体的定义为:函数A作为参数(函数引用)传递到另一个函数B中,并且这个函数B执行函数A。我们就说函数A叫做回调函数。如果没有名称(函数表达式),就叫做匿名回调函数。
阻塞代码实例
创建一个名为“mytext.txt”的文本文件,写入如下内容
测试DEMO
创建demo2.js文件,并写入如下内容
//引入fs模块,进行文件操作
var fs = require("fs");
//读取文件
var data = fs.readFileSync('mytext.txt');
//打印日志
console.log(data.toString());
console.log("程序执行结束!");
执行结果如下
[Running] node "c:\Users\user\Desktop\node\demo2.js"
测试DEMO
程序执行结束!
[Done] exited with code=0 in 0.094 seconds
非阻塞代码实例
创建一个名为“mytext.txt”的文本文件,写入如下内容
测试DEMO
创建demo3.js文件,并写入如下内容
//引入fs模块,进行文件操作
var fs = require("fs");
fs.readFile('mytext.txt', function (err, data) {
if (err) return console.error(err);
console.log(data.toString());
});
console.log("程序执行结束!");
执行结果如下
[Running] node "c:\Users\user\Desktop\node\demo3.js"
程序执行结束!
测试DEMO
[Done] exited with code=0 in 0.11 seconds
- 第一个程序在运行时序上,先执行读取文件操作,此时需要等待文件全部读取完毕才可以执行下面输出语句。
- 第二个程序利用了回调函数,在读取文件的同时仍执行输出语句,在文件读取完毕之后,再回过头来运行回调函数。
网友评论