JSスコープに頭を悩ませるのにいくつか問題があります。async:falseを有効にしたので、AJAXではないことはわかっていますが、 jQueryPromiseを機能させることができませんでした。apiDataが未定義で返される理由を本当に理解できません。
var url = 'http://www.myjson';
/* The API call */
function getData(url) {
var text;
result = $.ajax({
type: 'GET',
url: url,
async: false,
jsonp: 'callback',
dataType: 'jsonp',
success: function(data)
{
text = data;
//console logging here returns text data fine
return text;
}
});
return text;
}
apiData = getData(url);
console.log(apiData);
//returns undefined for apiData