Javascript 如何制作运行不定式的可变计时器序列

Javascript 如何制作运行不定式的可变计时器序列,javascript,Javascript,我有n参数,这些参数必须按顺序运行t秒。所有数据都存储在一个数组中,该数组通过ajax和json动态加载,并存在:函数参数p和睡眠时间t 功能(p1),持续30秒;当它完成功能(p2)15秒等 直到阵列完成;然后我们必须从头开始。 正手拍时,参数的数量及其显示时间不确定 如何使用javascript实现这一点 //编辑: 我试着做一个大函数,函数(p1)从t=0开始;从t=t1开始的功能(p2);从t=t1+t3开始的功能(p3) 但这感觉“愚蠢”和过分了……我怀疑你看起来像 var myarr

我有
n
参数,这些参数必须按顺序运行
t
秒。所有数据都存储在一个数组中,该数组通过ajax和json动态加载,并存在:函数参数
p
和睡眠时间
t

功能(p1)
,持续30秒;当它完成
功能(p2)
15秒等

直到阵列完成;然后我们必须从头开始。 正手拍时,参数的数量及其显示时间不确定

如何使用javascript实现这一点

//编辑: 我试着做一个大函数,函数(p1)从t=0开始;从t=t1开始的功能(p2);从t=t1+t3开始的功能(p3)


但这感觉“愚蠢”和过分了……

我怀疑你看起来像

var myarray=[['p1',30],['p2',15] ...];
在这种情况下,你可以

function runme(i) {
  if (i>=myarray.length) i=0;
  var p=myarray[i][0];
  var t=myarray[i][1];
  myfunction(p);
  i=i+1;
  window.setTimeout('runme('+i+');',1000*t);
}
编辑

当然

runme(0);

开始。

函数(p1)返回需要30秒,还是要等待30秒?使用匿名函数而不是字符串作为
setTimeout()
的参数,这将使传递数组和位置更加简单可靠。请参见@Aarondigula 1。)我的代码本来是有指导意义的,而不是有效率的:请参见我拉出完全不必要的p和t。2.)我曾有过将匿名函数传递到IE6的糟糕经历。所以我一直使用字符串版本,只要浏览器的名称是正确的。主参数(安全性)在这里不适用,因为字符串是在没有任何用户输入的情况下构造的。我为根据需要调整脚本所做的第一件事就是去掉p和t变量:)