设置超时停止循环

时间:2018-03-09 08:28:03

标签: javascript settimeout

我有一个设置超时的简单循环,经过一段时间,大约16分钟后,它停止工作,我不知道为什么。 你知道为什么或解决方案来理解什么是错误的吗?

代码非常简单:

private const initialCoords: Dictionary = new Dictionary();

private function saveInitialCoords(clip: DisplayObject): void {
    initialCoords[clip] = new Point(clip.x, clip.y);
}

private funciton retreiveInitialCoords(clip: DisplayObject): Point {
    return initialCoords[clip]; // it would return null if there is no coords
}

重复此功能,但约16分钟停止循环。

1 个答案:

答案 0 :(得分:0)

当前代码(根据假设):

function setData() { 
   for(var i=0;i<6;i++) { 
      setTimeout(function(){console.log(i)},3000)
   }
}

建议:

function setData(){
   for(var i=0;i<6;i++){ 
      settingData(i);
   }
}

function settingData(i){
  console.log(i);
}

由于setTimeOut在单独的上下文中运行,它将丢失传递的初始值。因此,通过迁移到单独的函数调用,它不会松开上下文。

相关问题