我做了一个递归循环,在没有停止标准的情况下,我认为这不重要。我没有在循环中创建任何变量,我只是不明白它为什么会停止:
async function locagetter() {
return await Location.getCurrentPositionAsync({enableHighAccuracy: true});
}
async function calcdist(val) {
console.log("hoi");
val = await locagetter();
await SetDistance(getPreciseDistance(
{latitude: 51.493280, longitude: 4.294605 },
{latitude: val.coords.latitude, longitude: val.coords.longitude}));
calcdist(val);
}
我尝试了很多也承诺,但我认为它应该工作,我只是需要一个持续的位置刷新。
1条答案
按热度按时间j5fpnvbx1#
如果你需要一个连续的刷新,那么为什么不使用一个间隔呢?到目前为止,你的递归没有中断条件,所以当组件卸载时它可能仍然运行(我不确定这一点,所以不要引用我的话),而使用间隔,你可以在卸载时开始停止它:
你可以更进一步,创建一个useCurrentLocation钩子,这样你就可以做更多的事情,而不会使使用它的组件变得混乱:
然后在使用该位置的组件中: