什么是回调?

时间:2009-12-26 15:48:13

标签: callback definition

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

2 个答案:

答案 0 :(得分:17)

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

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

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

答案 1 :(得分:11)

From the great Wikipedia

  

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

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

  1. 绘制 绿色的阴影(其中“paint”与所谓的方法类似,而“wall”和“green” “与论点相似。”
  2. 当你完成绘画时,给我打电话,告诉我你已经完成了,我会告诉你接下来要做什么。
  3. 就实际应用而言,有时会看到回调的地方是异步消息传递的情况。您可能希望将特定消息注册为B类感兴趣的项目。

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

    以下是相关问题的Java example of a callback