码迷,mamicode.com
首页 > 其他好文 > 详细

多个异步请求调用一个回调函数

时间:2017-04-25 23:21:49      阅读:199      评论:0      收藏:0      [点我收藏+]

标签:数据   asc   程序   执行   size   chrome   服务   而在   下一步   

  在我项目中曾经出现一个bug,就是在页面需要通过两个ajax获取两个数据,然后对这两个数据进行运算,然后得出结果,显示在页面上。而在测试过程中,发现两个数据始终为0,运算结果不正确。通过使用chrome开发者工具的断电调试功能,发现在ajax请求发出之后,程序直接进行下一步运算,没有等待服务器数据的接接收,这是常见的同步bug问题。为了结局这个bug,我将两个ajax请求写入javascript的 when()函数,然后通过then()的回调函数进行调用,保证在两次ajax请求都结束以后再进行运算。

  

 $.when($.ajax({
        url: "/home/GetProduct",
        dataType: "JSON",
        type: "GET",
        success: function (data) {
            alert(JSON.stringify(data));
        }
    }),$.ajax({
        url: "/home/GetProduct2",
        dataType: "JSON",
        type: "GET",
        success: function (data) {
            alert(JSON.stringify(data));
        }
    })
).done(function (data) { alert(data[0].Name); })
.done(
function (data) { alert(data[1].Name); })
.fail(
function () { alert("程序出现错误!"); })
.then(
function (data) { alert("程序执行完成"); });

 

多个异步请求调用一个回调函数

标签:数据   asc   程序   执行   size   chrome   服务   而在   下一步   

原文地址:http://www.cnblogs.com/byzantine/p/6764780.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!