这么久都没人来回答你这个问题我来抛个砖。
首先得搞清楚为什么要用为什么要用回调函数数——这个问题用 Baidu 搜索一下结果一堆一堆的。
一般情况下回调是用在异步處理上比如说,你向服务器发起一个请求由于网络比较慢,采用同步代码的话界面就是假死在那里一直等服务器返回数据,为了避免这个问题就做异步,但是如果用异步怎么能知道服务器把数据返回回来了,然后立即处理数据呢如果说写个循环同步等待,那跟沒做异步一样最好的办法就丢个算法给异步处理过程,让它在得到数据之后执行这个算法——算法靠什么实现函数!
当然,架设不是專门为异步设计的只要需要传递算法的地方就可以用回调,比如 C# 中的事件处理就是一种回调方式Java中的 Listener 对象,虽然不是传递的函数但實质仍然是回调。
这段代码并不完整所以只能作示例,不能运行假充它在某个按钮 ($button
) 按下时调用,它模拟了这样一个过程:
- 为了避免重複提交禁止了按钮,然后进行远程请求这个时候界面仍然是可以进行其它操作。
- 在进行远程请求的时候配置了3个为什么要用回调函數数,分别在执行成功执行执行失败执行,和不管成功失败都执行
成功执行的回调带1个参数,就是取回的数据;失败执行的回调不带參数(实际可以带3个参数具体参考 jQuery 文档);但不管成功失败,最后都需要把按钮再变为可用