美文网首页让前端飞
Callback回调函数

Callback回调函数

作者: 阿毛啊726 | 来源:发表于2020-05-31 21:27 被阅读0次

    函数可以作为一个参数在另一个函数中被调用。

    由于主程序在执行代码时,遇到文件读取的程序,需要进行较为麻烦的IO操作,所以函数、程序在执行过程中遇到IO操作就不会执行下去,而是跳过该程序,因此在这期间执行的操作和结果我们是得不到的。
    这样的行为还包括:定时器、网络连接、读取网络流数据、文件读写、Ajax提交、请求数据库服务等

    var a=0
    function seta(time){
        setTimeout(function () {
            a=10;
        },time);
    }
    console.log(a);
    seta(3000);
    console.log(a);
    //返回0 0
    

    虽然timer让a=10,但是JS不会等定时器结束再跳出函数,而是马上执行下一个语句console.log(a),此时a没有变,还是0。
    我们为了能得到a的值,引入callback
    将callback这个函数以参数的形式传入函数中
    正常函数传参是由外到内,将参数传入到函数中,但是callback相反,它将函数的中的某些值,由内向外传出到函数外面,这个传出来的值将进行什么操作,由调用这个函数的时候决定

    var a=0
    function seta(time,callback){
        setTimeout(function () {
            a=10;
            callback(a)
        },time);
    }
    console.log(a);
    seta(3000,function () {
        console.log(a);
    })  
    //返回 0 10
    

    seta中的function相当于callback,此时对callback得到的这个变量进行什么操作自己决定

    console.log(a);
    seta(3000,function () {
        console.log(a+"=============");
    })
    //返回 0 10============
    

    相关文章

      网友评论

        本文标题:Callback回调函数

        本文链接:https://www.haomeiwen.com/subject/gvarzhtx.html