node.js 回调函数
node.js通俗讲就是在后端运行的javascript,而javascript是单线程的,不能处理高并发的请求。node.js中的异步回调函数可以解决这一问题。node中使用了大量的回调函数,node所有的api都支持回调函数。这样,我们就可以一边读取文件,一边执行其他命令,执行代码时就没有阻塞,可以处理大量并发请求!
一、阻塞代码实例
创建一个test.txt文件,内容为:第一个node.js实例!
创建fs.js文件,代码如下:
var fs=require('fs'); var data=fs.readFileSync('./test.txt'); console.log('同步读取:'+data.toString()); console.log('程序执行完毕');
代码执行结果如下:
同步读取文件只有在文件读取完成后才会执行后面的指令!
二、非阻塞代码实例
创建fs.js文件,代码如下:
var fs=require('fs'); fs.readFile('./test.txt',function(err,data){ if (err){ return console.error(err); } console.log('异步读取:'+data.toString()); }); console.log('程序执行完毕');
代码执行结果如下:
我们发现不需要等待文件读取完毕,就可以执行后面的指令。
因此,若需要处理回调函数的参数,写在回调函数内即可。阻塞是按顺序执行的,非阻塞无须按顺序执行。
javascript是单线程的,但node中的异步回调可以使代码非阻塞执行,因此node可以处理高并发的请求!