2015-03-19 162 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