这是一个功能吗?
它是从源头调用的函数吗?
或者,它是从目的地返回的功能吗?
或者,它只是在目的地执行功能吗?
或者,它是从传递给目标的函数返回的值吗?
答案 0 :(得分:17)
回调是异步处理的构建块。
这样想:当你打电话给别人并且他们没有回答时,你会留言和你的电话号码。稍后,该人会根据您离开的电话号码回电。
回调以类似的方式工作。 您要求API进行长时间运行,并在代码中提供一个方法,以便根据操作结果调用该方法。 API完成其工作,当结果准备就绪时,它会调用您的回调方法。
答案 1 :(得分:11)
在计算机编程中,回调是 作为传递的可执行代码 其他代码的参数。它允许一个 较低级别的软件层来调用 a中定义的子程序(或函数) 更高层次。
换句话说,当您将回调传递给您的方法时,就好像您要提供其他说明(例如,您接下来应该做什么)。试图制作一个简单的人类例子如下:
就实际应用而言,有时会看到回调的地方是异步消息传递的情况。您可能希望将特定消息注册为B类感兴趣的项目。
然而,如果没有类似回调的内容,A类就没有明显的方法知道B类已收到该消息。通过回调,您可以告诉B类,这是我希望您收听的消息,这是A类中我希望您在收到它时调用的方法。
以下是相关问题的Java example of a callback。