回调函数(Callback)

什么是回调函数?

顾名思义,回调函数就是回头再调用它。回调函数其实就是一个参数,将这个函数作为参数传到另一个函数里面,当那个函数执行完之后,再执行传进去的这个函数。这个过程就叫做回调。

 下面是一个回调函数的简单例子:

//定义主函数,回调函数作为参数
function Main(callback) {
    callback();  
    console.log('我是主函数');      
}

//定义回调函数
function A(){
    setTimeout("console.log('我是回调函数')", 3000);//模仿耗时操作  
}

//调用主函数,将函数B传进去
Main(A);

//输出结果
我是主函数
我是回调函数
  • 上面的代码中,我们先定义了主函数和回调函数,然后再去调用主函数,将回调函数传进去。
  • 定义主函数的时候,我们让代码先去执行callback()回调函数,但输出结果却是后输出回调函数的内容。这就说明了主函数不用等待回调函数执行完,可以接着执行自己的代码,实现了异步编程的效果。
  • 回调函数多用在使用 js 写组件时和耗时操作上面,尤其是组件的事件很多都需要回调函数的支持。

缺点

回调函数有一个致命的弱点,就是容易写出回调地狱(Callback hell)。假设多个请求存在依赖性,你可能就会写出如下代码:

ajax(url, () => {
    // 处理逻辑
    ajax(url1, () => {
        // 处理逻辑
        ajax(url2, () => {
            // 处理逻辑
        })
    })
})

解决办法

解决回调地狱有很多方法,比如:Promise 对象、Generator 函数、async 函数。具体如何实现,不是本博要讲的内容,在之后的博中会一 一详细描述。

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值