我想從一個方法(pollServiceForInfo)返回一個JSON對象,但是當我在方法完成後提醒它時它似乎會「丟失」。我知道這是一個範圍界定問題,但是我很難理解如何進行。洞察力將不勝感激。範圍問題:值丟失
var id=null;
var jsonData = JSON.stringify({searchRequest:{coordinates: "1,2,3 1,2,3 1,2,3 1,2,3 1,2,3"}});
$.post("rest/search",jsonData, function(json){
id = json.searchResponse.id;
})
.error(function(jqXHR, textStatus, errorThrown){
alert("obj.responseText: "+jqXHR.responseText + " textStatus: "+textStatus+" errorThrown: "+errorThrown);
})
.success(function(data, status, obj){
// process initial request
var json = pollServiceForInfo(id); // method below
alert(json); // says undefined
});
var pollServiceForInfo = function(id){
//alert('id in pollServiceForInfo '+id);
var jsonResults;
$.get("rest/poll/"+id,function(data){
jsonResults = data.pollResponse;
}).error(function(){
alert('returning error');
return "error";
}).success(function(){
alert('returning data '+jsonResults);
return jsonResults; // is lost after it's returned
});
};
你的代碼是一個爛攤子,替換'後()'和'阿賈克斯()'它會使你的代碼更加清晰 – gdoron