gpt4 book ai didi

javascript - 基于嵌套函数条件的 'return true' 的最佳方法

转载 作者:行者123 更新时间:2023-12-02 16:13:55 24 4
gpt4 key购买 nike

这可能是一个新手问题,但我正在尝试创建一个返回 true 的函数。然而,这是基于内部其他几个函数中发生的情况。

function checkGeo(){

// CHECK FOR GEOLOCATION
if( "geolocation" in navigator ) {

navigator.geolocation.getCurrentPosition( function(position){
sessionStorage.pinlat = position.coords.latitude;
sessionStorage.pinlon = position.coords.longitude;
// position object is set!
});

// position is not defined
if ( position.coords.latitude && position.coords.longitude ){
return true;
}

}

}

这是我希望地理位置检查发生的顺序,但令我有点惊讶的是,在 getCurrentPosition 方法完成之前测试了嵌套的 if 。

将此条件放入 getCurrentPosition success 函数并从那里返回 true 并不会使 checkGeo 返回 true。如何检查此异步函数是否已结束并检查其结果以便返回 true

最佳答案

让你的函数有一个finished变量

function checkGeo(){
var self = this;
this.ready = function () {}
this.result = false;
if("geolocation" in navigator) {
navigator.geolocation.getCurrentPosition(function(position) {
sessionStorage.pinlat = position.coords.latitude;
sessionStorage.pinlon = position.coords.longitude;
self.result = (position.coords.latitude && position.coords.longitude);
self.ready.call(self);
});
}
}

现在您可以使用该功能:

var run = new checkGeo();
run.ready = function () {
alert(this.result); //Both work
alert(run.result); //Both work
};

稍微复杂一点,但我认为编程更好。

关于javascript - 基于嵌套函数条件的 'return true' 的最佳方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29870983/

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