0

我在 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 库。如何做到这一点?

4

2 回答 2

2

如果我理解正确,

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

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

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

于 2013-05-12T11:37:50.640 回答
0

使用setInterval()可能更合适:链接

于 2013-05-12T11:33:19.093 回答