gpt4 book ai didi

javascript - 如何构造我的 AJAX 来接受回调函数

转载 作者:行者123 更新时间:2023-12-03 11:26:27 25 4
gpt4 key购买 nike

我有 AJAX,它可以在函数中获取时区信息,并且我希望它返回结果。

我现在明白 AJAX 是异步的,所以我需要一个回调函数。我已经看过示例,但我无法理解它......如果我将其更改为仅采用回调函数,我不确定 getTimezone() 函数中的参数会去哪里。

任何帮助将不胜感激,这是代码:

ztimezone=getTimezone(lat,lng);


function getTimezone( tlat, tlong) {
url = "https://maps.googleapis.com/maps/api/timezone/json?location="+tlat+","+tlong+"&timestamp=1331161200&key=******";
$.ajax({
url: url,
type: "GET",
crossDomain: true,
dataType: 'json',

success: function (data) {
alert(data.timeZoneId);
zdata=((data.rawOffset/60)/60);

},
error: function (xhr, err) {
alert(xhr.responseText);
}
});
return zdata;
}

最佳答案

function getTimezone(tlat,  tlong, callback) { // <----- HERE
var url = "https://maps.googleapis.com/maps/api/timezone/json?location="+tlat+","+tlong+"&timestamp=1331161200&key=******";
$.ajax({
url: url,
type: "GET",
crossDomain: true,
dataType: 'json',

success: function(data) {
alert(data.timeZoneId);
var zdata = ((data.rawOffset/60)/60);
callback(zdata); // <----- HERE
},
error: function (xhr, err) {
alert(xhr.responseText);
}
});
// return zdata; // <----- HERE
}

第一行允许您将回调传递到函数中。

中间的那个用结果调用回调。

最后一个被注释掉,因为您永远无法从异步函数返回结果 - 您必须使用回调(或等效的 promise )。

要使用它,您需要这样做:

getTimezone(45, 16, function(zoneData) {
alert(zoneData); // or whatever
});

关于javascript - 如何构造我的 AJAX 来接受回调函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26899645/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com