我在Javascript中使用getCurrentPosition方法。我想实现一个按钮,当单击该按钮时,该按钮将停止执行方法“getCurrentPosition”。我尝试了throw / try / catch块,但似乎不起作用:
尝试{
$('#cancel')。on(“click”,function(){
$ .mobile.loading('hide');
抛出“停止”;
});
navigator.geolocation.getCurrentPosition(foundLocation,noLocation,{enableHighAccuracy:true,timeout:30000});
}
捕获(er){警报(er);返回false; }
有任何想法吗?在JS中甚至可能吗?
我有一个主意,但我不知道是否可以通过JS方法触发超时,以使getCurrentPosition中断?
最佳答案
解:
方法 navigator.geolocation.getCurrentPosition 是一个异步函数,因此不要指望像那样停止它。
您应该改为使用其他函数: navigator.geolocation.watchPosition 。它的工作方式与getCurrentPosition相同,但在您的情况下有用的是另一个函数 navigator.geolocation.clearWatch ,该函数用于停止watchPosition。
例:
geoLoc = navigator.geolocation;
watchID = geoLoc.watchPosition(showLocation, errorHandler, options);
geoLoc.clearWatch(watchID);