8

我在 Javascript 中使用 getCurrentPosition 方法。我想实现一个按钮,当它被单击时停止执行“getCurrentPosition”方法。我尝试使用 throw/try/catch 块,但它似乎不起作用:

    尝试 {
        $('#cancel').on("点击", function() {
            $.mobile.loading('隐藏');
            抛出“停止”;
        });
        navigator.geolocation.getCurrentPosition(foundLocation, noLocation, {enableHighAccuracy: true, timeout : 30000 });
    }
    捕捉(呃){警报(呃);返回假;}

有任何想法吗?在 JS 中甚至有可能吗?我有一个想法,但我不知道是否可以使用 JS 方法触发超时,以便 getCurrentPosition 中断?

4

1 回答 1

16

解决方案:

方法navigator.geolocation.getCurrentPosition是一个异步函数,所以不要指望像那样停止它。

您应该改用其他称为:navigator.geolocation.watchPosition的函数。它的工作方式与 getCurrentPosition 相同,但在您的情况下使它有用的是另一个名为navigator.geolocation.clearWatch的函数,该函数用于停止 watchPosition。

例子:

geoLoc = navigator.geolocation;
watchID = geoLoc.watchPosition(showLocation, errorHandler, options);
geoLoc.clearWatch(watchID);
于 2013-04-11T15:19:00.137 回答