2020-02-23

Node.js回调函数

Node.js异步编程的直接体现就是回调

异步编程依托于回调来实现,但不能说使用了回调后程序就异步化了。

回调函数在完成任务后就会被调用,Node使用了大量的回调函数,Node所有API都支持回调函数

例如,我们可以一边读取文件,一边执行其他命令,我们将文件内容作为回调函数的参数返回。这样执行代码时就没有阻塞或等待文件I/O操作。这就提高了Node.js的性能,可以处理大量的并发请求。

回调函数一般作为函数的最后一个参数出现:

function foo1(name,age,callback){ }
function foo2(value,callback,callback2){ }

阻塞代码实例:

创建一个文件input.txt,内容如下:
菜鸟教程官网地址:www.runoob.com
创建main.js文件,代码如下:
var fs = require("fs");
var data = fs.readFileSync('input.txt');
console.log(data.toString());
console.log("程序执行结束!");

非阻塞代码实例:

创建一个文件input.txt

####### 创建main.js文件,代码如下:

$ node main js
//程序执行结束!

总结:以上两个实例我们了解了阻塞与非阻塞调用的不同。第一个实例在文件读取完后才执行程序。第二个实例我们不需要等待文件读取完,这样就可以在读取文件同时执行下来的代码,大大提高了程序的性能

因此,阻塞是按顺序执行的,而非阻塞是不需要按顺序的,所以如果需要回调函数的参数,我们就需要在回调函数内。

你可能感兴趣的:(2020-02-23)