jq deferred举例

1.当两个ajax都执行完执行某函数

var getJson={
            getData:function(data){
                var defer = $.Deferred();
                var result;
                $.ajax({
                    url:'http://datainfo.duapp.com/shopdata/getGoods.php',
                    dataType:'jsonp',
                    async:false,
                    success:function(data){
                        var html="";
                        // $.each(data,function(i) {
                        //     html+="<div class='flex list'><img class='pic' src='"+data[i].goodsListImg+"'/><div class='name'>"+data[i].className+"</div><div class='num'>"+data[i].goodsID+"</div><img class='badge' src='img/list-1.jpg' /></div>"
                        // });
                        // $(".container").append(html);
                        // result=true; 
                        result=data[0].className;
                        console.log(result);
                        defer.resolve(result);      
                    },
                    error:function (XMLHttpRequest, textStatus, errorThrown){   
                       alert(XMLHttpRequest);   
                    } 
                })
                return defer.promise();                
            },
            getSome:function(res){
                var defer = $.Deferred();
                var result=false;
                $.ajax({
                    url:'http://datainfo.duapp.com/shopdata/getGoods.php',
                    dataType:'jsonp',
                    async:true,
                    success:function(data){
                        // var html="";
                        // $.each(data,function(i) {
                        //     html+="<div class='flex list'><img class='pic' src='"+data[i].goodsListImg+"'/><div class='name'>"+data[i].className+"</div><div class='num'>"+data[i].goodsID+"</div><img class='badge' src='img/list-1.jpg' /></div>"
                        // });
                        // $(".container").append(html);
                        // result=true; 
                        // console.log(result); 
                        result=data[8].className;
                        console.log(result);
                        defer.resolve(result);       
                    },
                    error:function (XMLHttpRequest, textStatus, errorThrown){   
                       alert(XMLHttpRequest);   
                    } 
                })
         
                return defer.promise(); 
            }         
        } 
        $.when(getJson.getData(),getJson.getSome()).done(function(res1,res2){   
                setTimeout(function(){
                    console.log(res1+" "+res2);
                },1000);        

        })

2.当执行完1个异步函数后延迟执行另一个函数

  var getJson={
            getData:function(data){
                var defer = $.Deferred();
                var result;
                $.ajax({
                    url:'http://datainfo.duapp.com/shopdata/getGoods.php',
                    dataType:'jsonp',
                    async:false,
                    success:function(data){
                        var html="";
                        $.each(data,function(i) {
                            html+="<div class='flex list'><img class='pic' src='"+data[i].goodsListImg+"'/><div class='name'>"+data[i].className+"</div><div class='num'>"+data[i].goodsID+"</div><img class='badge' src='img/list-1.jpg' /></div>"
                        });
                        $(".container").append(html);
                        result=true; 
                        result=data[0].className;
                        //console.log(result);
                        defer.resolve(result);      
                    },
                    error:function (XMLHttpRequest, textStatus, errorThrown){   
                       alert(XMLHttpRequest);   
                    } 
                })
                return defer.promise();                
            },
            getSome:function(res){
                $.when(getJson.getData()).done(function(res1){ 
                    console.log(res1);
                    setTimeout(function(){
                        $(".top").css("color","#ca2")
                    },1000);  
                })
                
            }         
        } 
        // $.when(getJson.getData(),getJson.getSome()).done(function(res1,res2){   
        //         setTimeout(function(){
        //             console.log(res1+" "+res2);
        //         },1000);        

        // })
        $("#btn").click(function(){
            getJson.getSome();
        })

  

 

转载于:https://www.cnblogs.com/lyxverycool/articles/6396443.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值