回调函数
- node.js异步编程的直接体现就是回调函数
- 极大的提高了Node.js的性能,处理大量并发请求
什么是回调函数?
//回调函数1
/*
1.一开始,可以写成这种格式,便于我们理解
*/
function callFun(fun){
fun();
};
function sayHello(){
console.log("hello");
}
callFun(sayHello);
简单来说,回调函数就是传递给其他代码的函数实体或引用
- 类型
- 同步回调函数
- 异步回调函数(Node.js中大量使用的就是它)
这里用代码展示一下
/*
异步函数实例:
***非阻塞式***
1.首先,调用fs模块(文件操作)
2.eadFile()函数---读取文件内容,
将内容写入另一个文件中并在控制台打印信息
*/
/ 文件模块
var file = require('fs');
// 读取文件内容
// 异步I/O操作(回调函数)
var read = file.readFile('readMe.txt','utf-8',function(err,data){
file.writeFile('writeMe.txt',data,function(){
console.log('data write finished');
});
});
//写入文件内容
//var write = file.writeFileSync('writeMe',read);
console.log("Finished!");
在执行结果中,可以看出:在进行I/O操作时,它先执行后面的操作去了,最后在输出I/O结果
var fs = require("fs");
/*
1.同步回调函数
***阻塞式***
2.会一直等待读取完数据在执行下一步操作
3.如果数据量庞大,执行效率是非常低的
*/
var data = fs.readFileSync('readMe.txt');
console.log(data.toString());
console.log("程序执行结束!");
这个实例,我们了解到回调函数的魅力。
也知道,阻塞与非阻塞的含义。
欢迎大家的批评指正,我们共同进步、共同学习~