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

就像是:

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

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


我到底想做什么:
doThis加载后立即调用。现在,一旦调用它,它应该将控件移交给window,它等待10秒钟,然后再次执行。

现在,执行doThat()直到满足doThat()的条件为止。然后,应将控件交还给if,然后应等待2秒钟并反复重复此循环。

我不想使用jQuery(回调或链接的东西)或任何其他javaScript库。该怎么做?

最佳答案

如果我理解正确,

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

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


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

10-04 20:45