什么是回调?

qst*_*tar 4 definition callback

这是一个功能吗?
它是从源头调用的函数吗?
或者,它是从目的地返回的功能吗?
或者,它只是在目的地执行一个功能?
或者,它是从传递给目标的函数返回的值吗?

dic*_*ciu 17

回调是异步处理的构建块.

可以这样想:当你打电话给别人并且他们没有回答时,你会留言和你的电话号码.稍后,该人根据您离开的电话号码给您回电.

回调以类似的方式工作.您要求API进行长时间运行,并在代码中提供一个方法,以便根据操作结果调用该方法.API完成其工作,当结果准备就绪时,它会调用您的回调方法.

  • 回调不仅适用于异步处理 - 它们可以同步使用. (3认同)

Bob*_*oss 11

来自伟大的维基百科:

在计算机编程中,回调是可执行代码,作为参数传递给其他代码.它允许较低级别的软件层调用更高级别层中定义的子例程(或函数).

换句话说,当您将回调传递给您的方法时,就好像您正在提供其他指令(例如,您接下来应该做什么).试图制作一个简单的人类例子如下:

  1. 这个墙上这个绿色的阴影("paint"与所谓的方法类似,而"wall"和"green"类似于参数).
  2. 完成绘画后,请拨打此号码给我打电话告诉我你已经完成了,我会告诉你接下来要做什么.

在实际应用程序方面,有时会看到回调的地方是异步消息传递的情况.您可能希望将特定消息注册为B类感兴趣的项目.

但是,如果没有类似回调的东西,A类就没有明显的方法知道B类已收到消息.通过回调,您可以告诉B类,这是我希望您收听的消息,这是A类中我希望您在收到它时调用的方法.

这是一个来自相关问题的回调Java示例.