什么是返回回调和仅调用回调之间的区别
在编程中,回调函数是作为另一个函数的参数传递的函数,当需求完成某个特定任务时,通过执行回调函数来实现。回调函数提供了各种强大的编程技术。回调函数通过允许通过回调执行所需的动作,使函数的执行更加动态。
回调函数有两种类型:同步回调(阻塞回调)和异步回调(延迟回调)。
- 同步回调: 也称为阻塞回调函数。它们与其名称暗示的一样是同步性质的,即它们遵循同步程序执行的方式,这意味着每行代码的执行都是在前一行完成执行并且立即执行。因此,在函数完成执行之前,同步回调会被调用。例如,C和C++。
- 异步回调: 也称为延迟回调函数。它们可能在函数完成执行后被调用。它们用于处理I/O操作和基于事件的程序执行。例如,向服务器发送HTTP请求并等待响应。在这种情况下,由于网络流量较大,响应可能会延迟到达,因此是异步的。现在假设我们希望在接收到响应后执行一个函数,那么我们将一个回调函数传递给发送请求的函数,这样在接收到响应后它就会自动执行,因此它是异步的,因为接收响应需要一些时间,而执行不是立即的。像JavaScript、Python、Lua这样的动态语言允许直接将回调函数作为对象传递。
现在我们知道了回调函数及其类型,让我们来看一下返回回调和仅调用回调之间的区别。
返回回调: 在返回回调中,被调用的函数返回一个回调而不是立即执行它。调用代码在回调被返回的地方可以立即执行返回的回调,将其传递给其他函数等等。让我们看一个返回回调函数的函数的示例。
输出:
调用回调函数: 与返回回调函数不同,调用回调函数只是立即执行回调函数。让我们看一个调用回调函数的示例。
输出: