为什么navigator.geolocation.watchposition在setInterval()中不起作用?

时间:2019-03-08 12:15:49

标签: react-native

我尝试每1秒获取一次位置坐标。但是geolocation.watchpositionsetInterval

中不起作用

这是我的代码:

componentDidMount(){
  const intervalId = BackgroundTimer.setInterval(() => {
          navigator.geolocation.watchPosition((position) => {
        console.log(position.coords.latitude);
        var lat = parseFloat(position.coords.latitude);
        var lng = parseFloat(position.coords.longitude);

          console.log("lat :",lat);
          console.log("lng :",lng);
    });
  }, 1000);

  BackgroundTimer.clearInterval(intervalId);
}

(如果我删除BackgroundTimer.setInterval方法)。它给我坐标。但是我想每秒

1 个答案:

答案 0 :(得分:0)

用户位置更改后,watchPosition方法将自动调用success回调,因此将无法执行此操作。如果确实需要获取每一秒(您可能不需要,因为用户的位置很少会在1秒钟内发生变化,并且消耗大量电池电量),则可以将setInterval与navigator.geolocation.getCurrentPosition方法一起使用。