【发布时间】:2014-06-12 01:12:04
【问题描述】:
有人知道如何从包含 getJSON 的函数返回值吗 问题是我试图从其他函数调用该函数以获取值 但它一直未定义!!!! 我怎样才能让它工作??!?
function TranslateLatLanToAddress(LatLng) {
var latlng = "34.1574183,-118.437125";
var url = "http://maps.googleapis.com/maps/api/geocode/json?latlng=" + latlng + "&sensor=false";
$ = jQuery;
$.getJSON(url, function (data) {
for (var i = 0; i < data.results.length; i++) {
var address = data.results[i].formatted_address;
// var address = data.results[i].address_components[4].long_name + data.results[i].address_components[6].short_name;
//alert(address);
// alert(address);
return false;
}
});
}
function GetVal()
{
var retVal =TranslateLatLanToAddress(LatLng);
alert(retVal); //Its undefined!!!
}
【问题讨论】:
-
ajax中的A表示 ASYNCHRONOUS -- 这意味着 ajax 调用是非阻塞的;当他们将控制权传递给下一行时,他们在后台工作。这被认为是 AJAX 101。因此,当您检查返回的值时,ajax 请求尚未完成。 -
你建议我做什么?
-
这取决于你想做什么。你真的没有太多选择;无论您需要做什么,都取决于 ajax 请求的结果,请在 ajax 回调中执行。或者你也可以准备好 jQuery promise 或 deferred。
标签: javascript jquery json json.net