开发者问题收集

如何在javascript中将数组值逐个分配给setTimeout

2018-11-02
78

我想在 setTimeout() 执行后插入数组值。一开始的默认值必须是 setTimeout(msg, 60000) ,之后我想在执行后逐个插入 arr 值。

例如:

这是我的数组 arr=[2, 5, 8] 一开始 setTimeout(msg, 60000) 执行后 setTimeout(msg, arr[0]) 第二次执行后 setTimeout(msg, arr[1]) 等等我需要向函数添加 arr 元素。请问我可以知道这个问题的解决方案吗?

1个回答

只需使用递归计时器:

  const times = [2, 5, 8];

  function next() {
    msg();
    if(times.length) setTimeout(next, times.shift() * 1000);
  }

 setTimeout(next, 6000);
Jonas Wilms
2018-11-02