【通俗易懂的定义】
- 同步(串行)调用在调用完成后直接得到结果
而异步(并行)调用并不知道是否已经得到执行结果 所以提供一个函数告诉执行者完成后调用此函数
我管这个叫做回调
- 比喻的说法:从前座庙(程序)、庙里有个缸(回调函数)。最初修庙的时候,不清楚是用缸装水还是腌咸菜,只是先放那,等具体使用的时候才能确定(程序运行时,调用回调函数处理具体问题)。
【举例】
回调(本身是方法,简称 B)可以作为参数传递给其他方法(简称 A),并且允许 A 在合适的时候(例如发生了某个事件或者满足了某个条件)调用 B.
下面使用 JS 描述回调的行为
// 该方法记录日志,在本例中充当回调函数 function doLog(number) { log("the number you just printed is:" + number); } // 接收一个数字和回调:完成打印数字和记录日志的功能 function printANumber(int number, function callbackFunc) { print("The number you provided is: " + number); callbackFunc(number); } // 执行如下,观察回调行为 printANumber(10, doLog);
上述代码的结果是:
The number you provided is: 10 the number you just printed is: 10