回调函数

Posted 葫芦娃~葫芦娃

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了回调函数相关的知识,希望对你有一定的参考价值。

回调函数

字面上理解下来就是,回调就是一个函数的调用过程。那么就从理解这个调用过程开始吧。
函数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函数中的代码。

以上是关于回调函数的主要内容,如果未能解决你的问题,请参考以下文章

满足条件时是不是可以在 GLSL 着色器中回调 C/C++ 函数/代码? [关闭]

ios block和delegate的区别

前端片段整理

通过DOM元素数据集将回调传递给js

对onActivityCreated片段回调有啥误解吗?

从片段替换片段时,onRequestPermissionsResult 回调不起作用