node.js当中对于回调函数的规定

分布式
• 阅读 2666

由上一篇文章 关于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的方式捕获异常。故为了在异步操作出现错误之后,及时的让外界知道,并终止回调函数的执行,故错误信息以回调当中第一个参数的方式传递。

点赞
收藏
评论区
推荐文章
小嫌 小嫌
3年前
Node.js学习笔记
什么是Node.js文件?Node.js文件包含将在特定事件上执行的任务一个典型的事件是有人试图访问服务器上的端口Node.js文件必须在服务器上启动才能生效Node.js文件的扩展名为“.js”Node.js文件应当如何执行推荐使用各种类型的编译器生成一个空白的nodedemo.js文件,在文件中输入下面的内容:varhttprequi
菜园前端 菜园前端
2年前
什么是回调函数?
原文链接:什么是回调函数?简单的来说,一个函数作为另外一个函数的参数,可以称为回调函数。这个理解其实不完全对,回调的意义根本没有体现出来,何为回调?也就是说一个函数你定义了,你没有马上的去调用它,而是交给了另外一个函数去调用,这才属于回调函数。缺点直接使用
Stella981 Stella981
3年前
Node.js安装与配置详解
码路在线​coderoad.online我知道,关于Node.js安装和配置的教程,已经烂大街了。我也看过很多关于Node.js的文章。但是,关于安装和配置的文章,我几乎只在刚学习Node.js的时候看过。没错,安装和配置这么简单的操作,哪里用得着看多少文章,看得多仔细,认真呢?所以,我后面发现,我对Node.js的某些部分,理解
Stella981 Stella981
3年前
Node.js 多进程处理CPU密集任务
Node.js单线程与多进程大家都知道Node.js性能很高,是以异步事件驱动、非阻塞I/O而被广泛使用。但缺点也很明显,由于Node.js是单线程程序,如果长时间运算,会导致CPU不能及时释放,所以并不适合CPU密集型应用。当然,也不是没有办法解决这个问题。虽然Node.js不支持多线程,但
Stella981 Stella981
3年前
NodeJs在windows上安装配置测试
Node.js简介简单的说Node.js就是运行在服务端的JavaScript。Node.js是一个基于ChromeV8引擎的JavaScript运行环境。Node.js使用了一个事件驱动、非阻塞式I/O的模型,使其轻量又高效。Node.js的包管理器npm,是全球最大的开源库生态系统。安装环境本机系统:Windo
Stella981 Stella981
3年前
CocosCreator编辑器脚本生命周期函数
CocosCreator为组件脚本提供了生命周期的回调函数。用户只要定义特定的回调函数,Creator就会在特定的时期自动执行相关脚本,用户不需要手工调用它们。目前提供给用户的生命周期回调函数主要有:onLoadstartupdatelateUpdateonDestroyonEnable
Stella981 Stella981
3年前
AVIOInterruptCB结构体分析
1AVIOInterruptCB结构体定义在/usr/include/libavformat/avio.h中有如下的结构体定义,根据头文件中的注释:这是一个回调函数和参数的结构体。有些函数是在阻塞的,用这个回调函数来检查是否中断这个阻塞函数,如果回调函数返回1,那么这个正在阻塞的操作将被中止。那么就用这个结构体里的参数opaque来回调其中的callb
Stella981 Stella981
3年前
JavaScript回调函数的高手指南
摘要:本文将会解释回调函数的概念,同时帮你区分两种回调:同步和异步。回调函数是每个前端程序员都应该知道的概念之一。回调可用于数组、计时器函数、promise、事件处理中。本文将会解释回调函数的概念,同时帮你区分两种回调:同步和异步。1.回调函数首先写一个向人打招呼的函数。只需要创建一个接受name参数的函数gree
Stella981 Stella981
3年前
ES6 Promise 对象扯谈
newPromise(/executor/function(resolve,reject){...});Promise的构造函数接收一个函数作为参数,函数里面传入两个参数:resolve,reject,分别表示异步操作执行成功后的回调函数和异步操作执行失败后的回调函数。其实这里用“成功”和“失败”来描述并不准确,按照标准来
Stella981 Stella981
3年前
Node.js 中使用 ECDSA 签名遇到的坑
文/Fenying最近有个朋友问我关于Node.js下使用ECDSA的问题,主要是使用Node.js的Crypto模块无法校验网络传输过来的签名结果。在踩坑无数后,终于搞清楚了原因。坑0x00:签名输出格式在排除了证书、消息不一致的可能之后,我开始对比使用Node.js签名的结果与网络传输过来的签
Wesley13 Wesley13
3年前
Go 语言基础入门教程 —— 函数篇:匿名函数和闭包
匿名函数熟悉Laravel框架(一个PHPWeb框架)的同学对匿名函数应该很熟悉,Laravel框架中有着大量匿名函数的应用场景,比如路由定义、绑定实现到接口等://路由定义再比如Swoole中通过回调函数处理网络事件实现异步事件驱动也是匿名函数的典型应用场景://收到请求时触发可以看到,匿名函数