如何执行2个javascript函数交错?

时间:2016-02-26 02:12:46

标签: javascript function

我有两个功能,需要每30秒执行一次功能。

示例,执行title()并在30秒后执行subtitle(),30秒后title()

我需要使用setInterval()来执行这些功能。

3 个答案:

答案 0 :(得分:2)

function a() { document.write('a ') }
function b() { document.write('b ') }
function c() { document.write('c ') }

fns = [a, b, c]

inter = setInterval(function() {
  
  fns[0]();
  fns.push(fns.shift());
  
}, 1000);

答案 1 :(得分:0)

UPD 刚想通了,你必须使用setInterval。因此,乔治的回答是目前最好的。

我提出了这个快速解决方案。

var functions = [title, subtitle];

(function loop(i) {
    functions[i]();
    setTimeout(loop, 30e3, Number(!i));
})(0);

有一个由2个函数(标题和副标题)组成的元组和一个循环函数,它立即调用第一个函数,然后启动一个30秒的计时器,用第二个函数的索引再次调用self。

目前,这是一次无限递归。 唯一的限制是callstack大小。

答案 2 :(得分:0)

使用setInterval您可以使用简单的标志来执行此操作。

var flag = true;

function title() {
  console.log('title');
}

function subtitle() {
  console.log('subtitle');
}

function wrapper() {
  if(flag) {
    title();
  } else {
    subtitle();
  }
  flag = !flag;
}

setInterval(wrapper, 30000);