メソッド (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
});
};