javascript-setTimeout / setInterval具有多个延迟以执行代码

我有一个存储有多个延迟的数组:myArray [8000,4000,3000,6000,5000].我需要setTimeout / setInterval来运行每个延迟,然后执行一段特定的代码.因此,例如:

myArray[0]=8000;
myArray[1]=4000;
myArray[2]=3000;
myArray[3]=6000;
myArray[4]=5000;

for(var k=0;k<5;k++)
{
    setTimeout(function() {

console.log("CODE TO BE EXECUTED");

    }, diffArray[k]);
}

因此,最终结果将是等待12秒运行代码,等待4秒运行代码,等待3秒运行代码,等待6秒运行代码以及等待5秒并运行代码.当前代码同时运行它们.

我知道这很可能需要递归来完成,我已经尝试了一些方法使其正常工作,但是没有运气.我让它以一种方式工作,但是很遗憾,它锁定了UI线程,在运行时我需要在UI中执行其他操作.任何帮助,将不胜感激!

解决方法:

依次运行setTimeout.您正在同时运行所有setTimeout.

myArray[0]=8000;
myArray[1]=4000;
myArray[2]=3000;
myArray[3]=6000;
myArray[4]=5000;
var k =0;
    function repeat(){
       if(k == myArray.length) return;
      setTimeout(function() {
              repeat();
              console.log("CODE TO BE EXECUTED");

      }, myArray[k]);
     k++;
  }
上一篇:setInterval函数JavaScript的问题


下一篇:小程序开发过程中的遇到的问题以及解决方法(1)