回调函数定义以及应用

定义:回调函数就是一个参数,将这个函数作为参数传到另一个函数里面,当那个函数执行完之后,再执行传进去的这个函数。这个过程就叫做回调。

 

例一:

function A(callback) {
        console.log("主函数");
        callback();
        console.log("主函数2");
    }

    function B() {
        console.log("回调函数");
        setTimeout(function(){
            console.log('我是回调函数')
        }, 1000);
    }

    A(B);

输出:  
    主函数  
    回调函数  
    主函数2  
    我是回调函数 

输出结果:说明了主函数不用等待回调函数执行完,可以接着执行自己的代码。所以一般回调函数都用在耗时操作上面。比如ajax请求,比如处理文件等。

 

例二:

    // 回调函数1
    function A(x) {
        return x * 2;
    }
    // 回调函数2
    function B(x) {
        return x * 3
    }
    // 中间函数
    function middle(x, fun) {
        return 100 + fun(x)
    }
    // 主函数
    function main() {
        var x = 2;
        var a = middle(x, A);
        var b = middle(x, B);
        console.log(a);
        console.log(b);
        console.log(x);
    }

    main();


输出:  
    104
    106  
    2  

有上述内容我们就可以推导出回调函数执行的流程了:

主函数需要调用回调函数

中间函数登记回调函数

触发回调函数事件

调用回调函数

响应回调事件


回调实际上有两种:阻塞式回调 和 延迟式回调 也可以叫做 同步回调 和 异步回调

两者的区别在于:

在阻塞式回调里,回调函数的调用一定发生在主函数返回之前

在延迟式回调里,回调函数的调用有可能是在起始函数返回之后

上述示例均为 同步回调,异步需要用到多进程、多线程、协程这些概念

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值