所以,我有一个被称为delayed1的延迟函数,每当cond1为真时就会重复调用它,问题是,在delayed1函数内部的某个地方,如果cond3为真,则会调用另一个被称为delayed2的延迟函数。
现在的问题是,我希望delayed1等待直到delayed2完成(也就是直到cond2为假),然后再恢复执行,但似乎并没有发生这种情况。一旦delayed2开始运行,delayed1就不会等待它完成然后再恢复执行。有什么办法可以解决这个问题吗?希望我表述得足够清楚...
function delayed2() {
setTimeout(function () {
do_something2();
if ( cond2 ) {
delayed2();
}
}, 1000)
}
function do_something1(){
if ( cond3 ){
delayed2();
}
else {
something_else();
}
}
function delayed1() {
does_something_here();
setTimeout(function () {
do_something1();
if ( cond1 ){
delayed1();
}
}, 1000)
}