什么是回调函数Node.js异步编程的直接体现就是回调。异步编程依赖于回调,但是不能说使用了回调之后程序就是异步的。回调函数将在任务完成后被调用。Node使用了很多回调函数,Node中所有的API都支持回调函数。例如,我们可以在读取文件的同时执行其他命令。读取文件后,我们将文件内容作为回调函数的参数返回。这种代码执行时不会阻塞或等待文件I/O操作。这大大提高了Node.js的性能,可以处理大量的并发请求。回调函数一般作为函数的最后一个参数出现,如下:functiondemo1(name,age,callback){}functiondemo2(value,callback1,callback2){}阻塞代码和非阻塞代码我们创建一个测试。txt文件,文件内容如下:侠客岛是一个优秀的互联网工作技能在线学习网站拦截代码创建一个readfile.js文件用于读取文件,然后在这个文件中写入代码:varfs=require("fs");vardata=fs.readFileSync('test.txt');console.log('读取内容为:\n'+data.toString());console.log("文件已读取!");启动readfile.js文件,输出如下:>nodereadfile.js读取:侠客岛是一个优秀的互联网工作技能在线学习网站文件正在读取!非阻塞代码将readfile.js文件中的代码修改为如下代码:varfs=require("fs");vardata=fs.readFile('test.txt',function(err,data){if(err)returnconsole.error(err);console.log(data.toString());});console.log("程序执行完成!");启动readfile.js文件,输出如下:>nodereadfile.js文件读取完成!侠客岛是一个优秀的网络工作技能在线学习网站。从上面两段代码的执行结果我们可以发现,阻塞代码会等到文件读取完毕后才会执行下一段代码,而非阻塞代码则不需要等待文件读取完成,然后再执行执行下一段代码。这样在读取文件的同时执行了下面的代码,大大提高了程序的性能。阻塞代码是按顺序执行的,但是非阻塞不需要按顺序执行,所以如果我们需要处理回调函数的参数,就需要写在回调函数中。更多可以查看:https://www.9xkd.com/3716132715.html
