2015-03-19 160 views
-1
function getvalue(value) { 
     document.getElementById('<%= hdnPack.ClientID %>').value = "0"; 
     var stdPack = 0; 
     alert("a"); 
     $.ajax({ 
      type: "POST", 
      contentType: "application/json; charset=utf-8", 
      url: "test.aspx/GetStdSellingPack", 
      data: "{'Col1':'" + value+ "'}", 
      dataType: "json", 
      success: function (data) { 
       alert("b"); 
       if (data != null) { 

        $(data).each(function() { 
         var values = data.d; 
         stdPack = values; 
        }); 
       } 
      }, 
      error: function (result) { 
       alert("Error"); 
      } 
     }); 
     alert("c"); 
     return stdPack; 

    } 

我试图执行此功能总是返回零,实际上发生警报(a)被触发,然后警报(C)被触发,突然它转到警报(b)。结果我想得到为了,Alert(a)先执行然后Alert(b)然后alert(c).Pl给我一个解决方案。提前感谢总是返回零值

+0

考虑返回承诺,然后解析ajax成功中的承诺。您的ajax调用是异步的,因此您的函数将在成功回调中的变量之前返回 – Quince 2015-03-19 12:20:27

回答

0

ajax是异步的,所以它可以'保证执行的代码序列。要从具有ajax调用的函数返回值,请检查此link