这是我参与2022首次更文挑战的第3天,活动详情查看:2022首次更文挑战
回调函数的定义
回调函数简言之,就是把一个函数当作参数传递给另一个函数.执行完后在需要的时候再调用这个回调函数获取到结果.
如果根据语义解释 - call被解释成调用,call back被解释为回调.调用打比方就是我调用库函数, 那么库函数调用我的函数就是回调了.
那么为什么我要多此一举,还要把我自己写的函数给另一个函数当参数.直接在我需要的时候使用这个函数不就行了吗?
如果逻辑很简单,确实没必要这样做.但打个比分,有个很好的库函数,大家都想使用它,库函数一般而言只提供最基础的功能,此时想定制化开发怎么办?难道不用这个库函数了从头到尾自己再写一遍?
这个时候回调函数就派上用场了.
库函数的编写者只需要把某部分大家都想定制化开发的代码空出来,用一个函数当作参数放在这,大家都各自写自己的,写完把这块代码封装起来,当作参数传给库函数.那么库函数在执行到这部分时,就会直接执行这部分你写好的代码.
既减轻了工作量,也实现了自己的需求,某个厉害的库函数的复用性也增强了,真是一举多得呢!
异步回调和同步回调
知道了回调之后根据执行的方式又会有两种回调模式:异步回调和同步回调.
异步回调函数和同步回调函数,最大的区别就在于是否会对当前进程造成阻塞.
同步回调的意思就是执行到这个函数的时候,需要等待其执行完毕才能继续执行,而异步回调的意思就是当前回调的函数执行情况对我没有任何影响,相当于两个线程,各自执行自己的操作.