zoukankan      html  css  js  c++  java
  • 多个异步请求调用一个回调函数

      在我项目中曾经出现一个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("程序执行完成"); });
  • 相关阅读:
    CCF CSP 201403-2 窗口
    Ethical Hacking
    Ethical Hacking
    Ethical Hacking
    Ethical Hacking
    Ethical Hacking
    Ethical Hacking
    Ethical Hacking
    Ethical Hacking
    Ethical Hacking
  • 原文地址:https://www.cnblogs.com/byzantine/p/6764780.html
Copyright © 2011-2022 走看看