由上一篇文章 关于node.js的一些简单理解 当中介绍了node.js的核心特性为事件驱动和非阻塞,故node当中会出现大量的异步操作,所以会出现大量的回调函数。node当中统一规定,如果一个函数需要定义回调函数,则遵循以下几点:
1、回调函数一定要作为该函数参数当中的最后一个参数出现
function foo(name,age,callback){ }
这样处理是为了,当该函数不需要回调函数时,最后一个参数可以不传,这样也不会影响该函数当中其他参数的传递。
2、回调函数当中的第一个参数默认接收错误信息,从第二个参数开始才是真正的回调数据,这样便于外界获取调用时出现的错误信息。(强调错误优先的回调函数)
const fs = require('fs');
fs.readFile(fsPath,(err,data)=>{
if(err){
throw err;
}else{
}
});
因为对于异步操作来说,如果其内部出现错误,是无法通过
try catch
的方式捕获异常。故为了在异步操作出现错误之后,及时的让外界知道,并终止回调函数的执行,故错误信息以回调当中第一个参数的方式传递。