回调函数

回调函数

字面上理解下来就是,回调就是一个函数的调用过程。那么就从理解这个调用过程开始吧。
函数a有一个参数,这个参数是个函数b,当函数a执行完以后执行函数b。那么这个过程就叫
回调。

其实中文也很好理解:回调,回调,就是回头调用的意思。函数a的事先干完,回头再调用
函数b。

其实这就是一个回调的过程,你留了一个函数b(要求女朋友给你发信息)给你女朋友,然后
你女朋友回家,回家的动作是函数a。她必须先回到家里(函数a的内容执行完),再去给你发
信息(执行函数b),然后你就收到了一条信息。

这里必须清楚一点,函数b是你以参数形式传给函数a的,那么函数b就叫做回调函数。

深入解释:函数b就是你要求你女朋友发信息给你,函数a就是你女朋友回家,而你,就是主
程序。主程序会继续做自己的事情,你女朋友带着函数b回家,她自己回到家之后,再去操
作函数b,函数b再来执行发信息这个动作,然后你就收到了短信。

一般来说,执行完回调函数b,那么函数b肯定还有个执行结果,那么一般的情况是,将函数
b的值,赋值给一个变量,或者return一下,给程序其他地方用。


例子:

CreateNesService.uploadTemplate(fileKey)
.then(function(result)
{self.memKey = result.data})

CreateNesService.uploadTemplate是一个put请求,是异步的。那么主程序留了这个函数在这,主程序自己继续接着往下执行了。then函数就是一个回调函数,其中的result参数就是前面的CreateNesService.uploadTemplate函数的执行结果,相当于将CreateNesService.uploadTemplate函数以参数的形式传给了then函数CreateNesService.uploadTemplate函数执行完,然后发出一个promise,再来执行then函数中的代码。

原文地址:https://www.cnblogs.com/Jerry-spo/p/6390861.html