该setTimeout
函数不会延迟执行。相反,它安排一个函数在以后执行。要执行您想要的操作,您需要将代码更改为:
function(){
...
...
doDelay(function(){
some other functionality....
});
}
function doDelay(callback){
setTimeout(function() {callback()}, 10000);
}
事实上,javascript 已经有一个 doDelay 函数。它被称为setTimeout
:
function(){
...
...
setTimeout(function(){
some other functionality....
},10000);
}
如果您希望外部函数也延迟执行它之后的代码,您还需要向它传递一个回调:
function foo (callback){
...
...
doDelay(function(){
some other functionality....
callback();
});
}
因此,例如,它允许您重写如下内容:
foo();
// do other stuff after foo...
对此:
foo(function(){
// do other stuff after foo...
});
您基本上需要围绕回调重构逻辑。