• jq回调对象和延迟对象


    1、回调对象$.Callbacks()

    创建一个毁掉对象var cb = $.Callbacks();

    通过cb.add(fn1);向回调对象里添加一个函数,通过cb.fire()执行cb里面的函数,通过cb.remove(fn1)来移除对象里面的某个函数。

    例如:

    function aaa(){
            alert(1);
        }
        function bbb(){
            alert(2);
        }
        function ccc(){
            alert(3);
        }
        
        var cb = $.Callbacks();
        cb.add(aaa);
        cb.add(bbb);
        cb.fire();  //1,2
        cb.add(ccc);
        cb.remove(aaa);
        cb.fire();  //2,3

    cb.fire();还可以通过加上once memory unique stopOnFalse来到达不同的执行效果,例如:cb.fire('once');表示只执行一次。

    2、延迟对象$.Deferred()

    用法和对调对象类似,

    创建一个延迟对象,var dfd = $.Deferred();

    延迟对象的初始状态是pending等待状态,当状态为resolve的时候,就会执行done里面的函数,当状态为reject的时候,就会执行fail里面的函数,例如:

    var dfd = $.Deferred();
        
        //dfd延迟对象的初始状态 : pending(等待)
        
        setTimeout(function(){
            alert(1);
            //dfd.resolve();
            dfd.reject();
        },1000);
        
        dfd.done(function(){
            alert(2);
        });
        dfd.fail(function(){
            alert(3);
        });

    jq的ajax中返回的就是延迟对象,可以用done和fail分别替代success和error时的回调,例如:

    $.ajax('xxx.php').done(function(){  }).fail(function(){});
    $.when( $.ajax('xxx.php') , $.ajax('yyy.php') ).done(function(){}); //当两个请求都成功的时候执行done里面的回调
        
    $.ajax('xxx.php').then(function(){} , function(){});
  • 相关阅读:
    PostgreSQL缺省值
    PostgreSQL表的基本概念
    PostgreSQL调用函数
    4.2. PostgreSQL值表达式
    3.5. PostgreSQL继承
    3.4. PostgreSQL事务
    3.3. PostgreSQL外键
    3.2. PostgreSQL视图
    碰撞
    骨骼
  • 原文地址:https://www.cnblogs.com/toodeep/p/4753004.html
Copyright © 2020-2023  润新知