函数异步执行,并传递传参

使用$.when并行处理数据
<script src="resources/js/jquery/jquery.min.js"></script>

<script>
    var person1=new Object();
    person1.name="aa";
    person1.age=20;
    var person2=new Object();
    person2.name="cc";
    person2.age=40;

    function name(){
        var dtd = $.Deferred();
        person1.name="bb";
        var add=2;
        dtd.resolve(add);
        return dtd.promise();
    }
    function age(){
        var dtd = $.Deferred();
        person2.age=30;
        dtd.resolve();
        return dtd.promise();
    }
    function person(add){
        console.log(person1,person2);
        console.log(add);
    }
    $.when(name(),age())
        .done(function(add){
            person(add);

        })
        .fail(function(){ alert("出错啦!"); });

</script>




同步读取两个或两个以上文件

//实现两个文件一起读取  
var getCsv = function (csvUrl) {  
    var defer = $.Deferred();  
    d3.csv(csvUrl, function (error, rows) {  
        if (error) {  
            defer.reject(error);  
        }  
        defer.resolve(rows);  
    });  
    return defer.promise();  
};  
var getJson = function (jsonUrl) {  
    var defer = $.Deferred();  
    d3.json(jsonUrl, function (error, rows) {  
        if (error) {  
            defer.reject(error);  
        }  
        defer.resolve(rows);  
    });  
    return defer.promise();  
};  
$.when(  
    getCsv("data/info.csv"), // please pass csv url as you like  
    getJson("data/test.json")  // please pass csv url as you like  
).done(function (infodata,data) {  
    drawforce(data,infodata);  
      
    datemp=data  
    return datemp;  
    console.log("11",infodata)  
   // readInfo(infodata);  
}).fail(function (err) {  
    console.log(err);  
});  


多个Ajax 并行获取数据

今天又碰到了跟这个相关的问题,不一样的是执行的是ajax函数

参考如下:

 $.when($.ajax({
            type: "post",
            url: server_context + "/shopinfo?shopid=" + origin,
            dataType: "json",
            error: function () {
                console.log("search erro");
            },
            success: function (shopInfo) {
                console.log(" success");
            }
        }), $.ajax({
            type: "post",
            url: server_context + "/shopcompetition?shopid="+origin,
            dataType: "json",
            error: function () {
                console.log("search erro");
            },
            success: function (competitors) {
                console.log(" success");
            }
        }))
            .done(function(data1,data2){
                var shopInfo = data1[0];
                var competitors =data2[0];
               //这样才可以获取ajax获取的数据
                ....

            })
            .fail(function(){ alert("出错啦!"); });


评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值