什么是回调函数?Node中回调函数的基本概念是什么?
Node.js中的回调函数详解
回调函数概述
回调函数定义
回调函数主要用途
回调函数用法
回调函数基本格式
简单的回调函数实例(执行顺序理解)
回调函数实例
回调函数概述
回调函数在很多地方都有用到,本文主要介绍Node.js的回调函数。主要是做这个人理解,如有错误,欢迎指正。
回调函数定义
回调函数就是一个通过函数指针调用的函数,当把该函数地址作为参数传递给另一个函数,当一个指针用来调用其所指向的函数时,就可被称为回调函数。
回调函数主要用途
在Node.js中,异步编程的实现主要就是依靠回调函数,回调函数在任务完成后被调用。可以做到在不阻塞或等待文件I/O操作的情况下,执行大量并发请求。
第一次学习回调函数是在Node.js对MySQL数据库进行读取后,发现数据库读取函数connection.query();是一个异步函数,在做登录功能时无法直接用获取到的数据进行密码比对,多方查找,开始使用回调函数把获取的数据返回出来。
回调函数用法
回调函数基本格式
function xxx(parameter1, parameter2, callback) { }
1
回调函数一般作为函数的左后一个参数出现,一个函数中可以出现多个回调函数,如:
function newxxx(parameter1, parameter2, callback1,callback2) { }
1
简单的回调函数实例(执行顺序理解)
首先创建1.txt文件
内容为:
我是文本文档1111
//代码1
var fs = require("fs");
var path="F://1.txt";
var data = fs.readFileSync(path);
console.log(data.toString());
console.log("over!");
1
2
3
4
5
6
//代码2
var fs = require("fs");
var path="F://1.txt";
fs.readFile(path, function (err, data) {
if (err) return console.error(err);
console.log(data.toString());
});
console.log("over!");
1
2
3
4
5
6
7
8
其中,代码1正常的同步执行,代码2使用了回调函数,使读取和后续代码并发执行。
结果如下:
代码2执行结果:
代码2执行结果
代码1执行结果:
代码1执行结果
可以看出,异步执行时,代码会继续执行下去,同步时需要等待文件读取完成才会继续执行
图片自己找
楼上字多,楼上说的对