繁体   English   中英

Javascript 触发最后一个事件

[英]Javascript fire the last event

我正在编写一个 Web 应用程序,但我不知道如何继续我正在尝试使用 Javascript 做的事情。

我有一个功能,当我放大地图或移动地图时会触发该功能。 我尽量避免这个函数做它的东西,直到它过了一段时间(例如 2 秒)。 好的,我可以使用setInterval方法来实现它。

但是我想要但我不知道该怎么做是...如果我缩放 3 次,它们之间的时间非常接近,我只想处理最后一次缩放,而不是前两个缩放 我的意思是,必须取消前 2 个函数调用,或者类似的东西。

我怎么能那样做?


我所拥有的示例(伪代码):

function doStuff() {
    setInterval(function({
       // do some stuff here...
    }, 2000);
}

myMap.on('dragend', doStuff);  // If I move inside the map
myMap.on('zoomend', doStuff);  // If I do zoom on the map

我会尝试在每次开始间隔时在全局变量中设置捕获 intervalID; 然后在触发事件时检查变量是否已设置,如果已设置,则使用 clearInterval 函数在开始下一个间隔之前取消前一个间隔。

像这样的东西:

var intervalID = 0;

function doStuff(){
  if(intervalID != 0){
    window.clearInterval(intervalID);
  }
  intervalID = setInterval(function({
       // do some stuff here...
       intervalID = 0; // try reseting the intevalID on completion, not sure if here
  }, 2000);

//  Your stuff

https://developer.mozilla.org/en-US/docs/Web/API/WindowOrWorkerGlobalScope/setInterval https://developer.mozilla.org/en-US/docs/Web/API/WindowOrWorkerGlobalScope/clearInterval

您可以使用object.addEventListener('load', function()) -function。

对象加载后,其中的函数将触发。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM