一個全局的變量var JsonData;
我這裡有一個Ajax處理的方法:
JScript code:
function GetJson(DataSourceName) {
$.ajax({
type: “post”,
url: “Ajax/AjaxData.ashx?MethodName= ” DataSourceName,
contentType: “application/json;”,
data: “”,
dataType: “json”,
success: function (Result) {
JsonData = Result; 🎜>},
error: function (result) {
alert(「取得資訊清單錯誤」);
window.close();
}
});
return();
}
});
return JsonData;
}
然後我有一個類別。
程式碼如下:
{
GetJson(sFieldSourceName);
var b = JsonData;
}
如此,當我執行DrawDropDownList的時候,為什麼總是取得不到JsonData呢?
我打斷點追蹤了下, 發現是等DrawDropDownList方法裡面的所有都執行完以後才會進入GetJson方法,
請問有什麼辦法把GetJson裡面獲得的Result資料拿出來?
不要在
success: function (Result) {
//Do Something
},
我就是想把獲得的數據拿出來用, 因為GetJson是一個通用的方法,不想在裡面執行單一的邏輯.
不能在回呼中return,並且需要同步,就可以了!
另外一種放過是不建議同步的,需要給我的函數增加一個函數參數作為回調函數,將ajax的結果傳遞到該函數,如下代碼細節:
function GetJson(DataSourceName,callback) {
$.ajax({
「 post”,
url: “Ajax/AjaxData.ashx?MethodName=” DataSourceName,
contentType: “application/json;”,
data: “”,
dataType: “json”,
success: function (Result) {
JsonData = Result;
callback(JsonData)
},
error: function (result) {
alert(“取得訊息清單錯誤”) ;
window.close();
}
});
//return JsonData;
}