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可以处理高并发的请求!

posted on 2017-06-09 11:31  世界之魂  阅读(198)  评论(0编辑  收藏  举报

导航