gpt4 book ai didi

javascript - 等待 JavaScript 中的回调

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

我正在尝试创建一个返回带有回调信息的对象的函数:

var geoloc;

var successful = function (position) {
geoloc = {
longitude: position.coords.longitude,
latitude: position.coords.latitude
};
};

var getLocation = function () {
navigator.geolocation.getCurrentPosition(successful, function () {
alert("fail");
});

return geoloc;
};

我该怎么做?函数getLocation在执行successful之前返回null值。

谢谢!

最佳答案

使用回调是因为该函数是异步的。回调在未来的某个时刻运行。

所以,是的 getLocation 在回调被触发之前返回。这就是异步方法的工作原理。

你不能等待回调,这不是它的工作原理。您可以向 getLocation 添加回调,该回调将在完成后运行。

var getLocation = function(callback){
navigator.geolocation.getCurrentPosition(function(pos){
succesfull(pos);
typeof callback === 'function' && callback(geoloc);
}, function(){
alert("fail");
});
};

现在,您不再执行 var x = getLocation() 并期望返回值,而是这样调用它:

getLocation(function(pos){
console.log(pos.longitude, pos.latitude);
});

关于javascript - 等待 JavaScript 中的回调,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11747440/

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