JavaScript:如何延迟函数?

时间:2013-05-12 11:30:47

标签: javascript

我在Javascript代码中有两个函数,一个在另一个中循环。

类似的东西:

function doThis(){
   doThat();          
   window.setTimeout( doThis , 2000); 
}

function doThat(){
   if(someCondition){
   window.clearTimeout(id)
   }
   var id = window.setTimeout( doThat, 10000);
}

我到底想做什么: 加载doThis后立即调用window。现在,一旦调用它,它应该将控制权移交给doThat(),等待10秒再重新执行。

现在,执行doThat()直到if编码满足。然后,它应该将控制权交还给doThis(),然后等待2秒并反复重复这个循环。

我不想使用jQuery(回调或链接的东西)或任何其他javaScript libarary。如何做到这一点?

2 个答案:

答案 0 :(得分:2)

如果我理解正确,

function first() {
    setTimeout(second, 1000)
}

function second() {
    if(condition) {
        setTimeout(first, 2000)
    } else {
        setTimeout(second, 10000)
    }
}

无需在任何地方保存超时或清除它。

答案 1 :(得分:0)

使用setInterval()可能更合适:link