gpt4 book ai didi

javascript - 禁止循环函数

转载 作者:行者123 更新时间:2023-12-02 18:50:18 24 4
gpt4 key购买 nike

函数 onSuccess 无限期运行,因为不断向 GPS 接收器询问坐标。它包含一个函数 createMap,仅执行一次。这是如何实现的?在函数之外做一个函数也可以,因为它是作为函数的变量的参数值传递的。

watchID = navigator.geolocation.watchPosition(function(position) {onSuccess(position, arrMyLatLng);}, onError, options);  

function onSuccess(position, arrMyLatLng)
{

var latitude , longitude ;
latitude = position.coords.latitude ;
longitude = position.coords.longitude;
var myLatLng = new google.maps.LatLng(latitude, longitude);

createMap(myLatLng, arrMyLatLng);// This feature will run for an indefinite number of times. It is only necessary once.
map.panTo(myLatLng) ;
}

最佳答案

您可以使用闭包创建具有私有(private)状态的函数:

onSuccess = (function() {
var created = false;
return function (position, arrMyLatLng) {
var latitude , longitude ;
latitude = position.coords.latitude ;
longitude = position.coords.longitude;
var myLatLng = new google.maps.LatLng(latitude, longitude);
if (!created) {
createMap(myLatLng, arrMyLatLng);
created = true;
}
map.panTo(myLatLng) ;
};
}());

关于javascript - 禁止循环函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15911404/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com