首页 > 代码库 > 多个异步请求调用一个回调函数
多个异步请求调用一个回调函数
在我项目中曾经出现一个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("程序执行完成"); });
多个异步请求调用一个回调函数
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。