Node.js学习心得之回调函数

回调函数,简单而言就是函数a作为函数b的一个形参,在函数b中被调用,当函数a执行完毕后程序回到a被调用位置的下一条语句继续执行,此时,函数a就是一个回调函数。举一个知乎上的小例子来直观说明一下就是:
你到一个商店买东西,刚好你要的东西没有货,于是你在店员那里留 下了你的电话,过了几天店里有货了,店员就打了你的电话,然后你接到电话后就到店里去取了货。在这个例子里,你的电话号码就叫回调函数,你把电话留给店员就叫登记回调函数,店里后来有货了叫做触发了回调关联的事件,店员给你打电话叫做调用回调函数,你到店里去取货叫做响应回调事件。

在C++中,回调函数被如下定义:
回调函数就是一个通过函数指针调用的函数。如果你把函数的指针(地址)作为参数传递给另一个函数,当这个指针被用来调用其所指向的函数时,我们就说这是回调函数。回调函数不是由该函数的实现方直接调用,而是在特定的事件或条件发生时由另外的一方调用的,用于对该事件或条件进行响应。

而在Node.js中,回调函数是实现异步编程的基础。由于JavaScripts是单线程和单进程的语言,为了提高js代码的执行速度,在同步编程机制的基础上引入了异步编程机制,所谓同步,即是每个进程按照顺序来执行,后面的进程需要等待前面的进程执行完毕方可执行;所谓异步,则是多个进程可以同时执行,大大提高了程序的执行速度。而异步编程正是依托回调函数来实现,在node.js程序中,如果程序采用了异步编程机制,则无需等待当前进程执行完毕,可以继续执行后续进程,即实现“并行执行”,最终在结尾出汇总结果即可。
简单举个例子:
同步编程:
在这里插入图片描述
在这里插入图片描述
异步编程:
在这里插入图片描述
在这里插入图片描述
回调函数一般作为函数的最后一个参数出现,通常命名为callback(),回调函数第一个参数一般为代码中的错误信息,第二个参数为真正的返回结果。同步编程使用try-catch语句来处理异常,而异步代码不能使用try-catch语句处理异常,因此使用回调函数来实现异常的处理。
简单举个例子:
同步编程:
在这里插入图片描述
异步编程:
在这里插入图片描述

参考资料:作者:常溪玲
链接:https://www.zhihu.com/question/19801131/answer/13005983
来源:知乎

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值