TLDR我有一个在 openlayers 地图中的平底锅末端运行的功能。不希望它连续开火。
我有一个在平移地图结束时运行的函数。我希望它在平底锅完成后 3 秒后才会触发该功能。尽管我不想像 setTimeout 当前正在执行的那样将函数排队以触发 10 次左右。
如何将函数延迟运行 n 秒,然后无论调用多少次都只运行一次?
map.events.register("moveend", map, function() {
setTimeout(SetLocation, 5000);
});
移动端:
moveend - triggered after a drag, pan, or zoom completes
上面的代码甚至使用了 setTimeout(func, delay); 运行时仍会触发多次。我怎样才能防止这种情况?