zoukankan      html  css  js  c++  java
  • 复习一知识点:回调函数callback

    比如我们常用的异步请求:

    $.ajax({
        url:"test.json",
        type: "GET",
        data: {username:$("#username").val()},
        dataType: "json",
        beforSend:function(){ 
             // 禁用按钮防止重复提交
            $("#submit").attr({ disabled: "disabled" });
        }, 
        complete:function(msg){ 
            //请求完成后调用的回调函数(请求成功或失败时均调用)
        } , 
        error:function(msg){ 
            //请求失败时被调用的函数 
        } , 
        Sucess:function(msg){ 
            //请求成功后调用的回调函数 
        } 
    });

    初学js的时候,被回调函数搞得很晕,现在回过头来总结一下什么是回调函数。

      我们先来看看回调的英文定义:A callback is a function that is passed as an argument to another function and is executed after its parent function has completed。

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

      其实也很好理解对吧,回调,回调,就是回头调用的意思。主函数的事先干完,回头再调用传进来的那个函数。但是以前看过很多博客,他们总是将回调函数解释的云里雾里,很高深的样子。

      举一个别人举过的例子:约会结束后你送你女朋友回家,离别时,你肯定会说:“到家了给我发条信息,我很担心你。” 对不,然后你女朋友回家以后还真给你发了条信息。小伙子,你有戏了。其实这就是一个回调的过程。你留了个参数函数(要求女朋友给你发条信息)给你女朋友,然后你女朋友回家,回家的动作是主函数。她必须先回到家以后,主函数执行完了,再执行传进去的函数,然后你就收到一条信息了。

      现在基本理解回调函数的意思了吧。不理解的话没关系,我们用代码说话。

    //定义主函数,回调函数作为参数
    function A(callback) {
        callback();  
        console.log('我是主函数');      
    }
    
    //定义回调函数
    function B(){
        setTimeout("console.log('我是回调函数')", 3000);//模仿耗时操作  
    }
    
    //调用主函数,将函数B传进去
    A(B);
    
    //输出结果
    我是主函数
    我是回调函数

    上面的代码中,我们先定义了主函数和回调函数,然后再去调用主函数,将回调函数传进去。

      定义主函数的时候,我们让代码先去执行callback()回调函数,但输出结果却是后输出回调函数的内容。这就说明了主函数不用等待回调函数执行完,可以接着执行自己的代码。所以一般回调函数都用在耗时操作上面。比如ajax请求,比如处理文件等。

    转载自:https://blog.csdn.net/u010261944/article/details/78927193

  • 相关阅读:
    Java xml 操作(Dom4J修改xml   + xPath技术  + SAX解析 + XML约束)
    Git 命令 操作
    vim常用快捷键
    离线数据分析流程介绍
    WebPack 简单使用
    React Native之React速学教程(下)
    puppet 部署 horizon server 所需的参数和部署逻辑
    jsp出现getOutputStream() has already been called for this response异常的原因和解决方法
    12款优秀的 JavaScript 日历和时间选择控件
    mysql 去重
  • 原文地址:https://www.cnblogs.com/Lolita-web/p/10366129.html
Copyright © 2011-2022 走看看