我在Javascript中使用getCurrentPosition方法。我想实现一个停止执行方法的按钮" getCurrentPosition"当它被点击时。我尝试使用throw / try / catch块,但它似乎不起作用:
try { $('#cancel').on("click", function() { $.mobile.loading('hide'); throw "stop"; }); navigator.geolocation.getCurrentPosition(foundLocation, noLocation, {enableHighAccuracy: true, timeout : 30000 }); } catch ( er ) { alert(er); return false; }
有什么想法吗?它甚至可以在JS? 我有一个想法,但我不知道是否可以用JS方法触发超时,以便getCurrentPosition中断?
答案 0 :(得分:11)
方法 navigator.geolocation.getCurrentPosition 是一个异步函数,所以不要指望像那样停止它。
您应该使用其他名为 navigator.geolocation.watchPosition 的功能。它的工作方式与getCurrentPosition相同,但在你的情况下使它有用的是另一个名为 navigator.geolocation.clearWatch 的函数,该函数用于停止watchPosition。
geoLoc = navigator.geolocation;
watchID = geoLoc.watchPosition(showLocation, errorHandler, options);
geoLoc.clearWatch(watchID);