我指的是this。一切仍然不清楚。
fillTree()
来更新树,它具有复选框。 checkSelectedBoxes()
,它在window.onload
上执行,用于检查选定的复选框。 我的问题:
setTimeout()
,其他脚本功能是否也会停止并等待功能完成加载? 在这种情况下可能是什么情况:
function fillTree(){...}
function checkSelectedBoxes(){...}
fillTree(); // This take time to get data. onLoad() doesnt work.
setTimeout(function(){ checkSelectedBoxes() },5000);
即使增加了时间间隔,这也会返回空值。
fillTree()
会暂停执行吗? 最佳答案
不,setTimeout
不会等您(因此,JS没有暂停功能)。 setTimeout
的工作在稍后的时间被搁置,并允许执行下一行。当达到该超时时间时,它将把该任务插入执行行。当没有其他代码在运行时,它将执行所指示的功能。
您要做的是给fillTree()
回调,并在完成后执行。
function fillTree(callback){
//do something very long
callback(); //execute passed function when it's done
}
fillTree(function(){
checkSelectedBoxes(); //executes only when fillTree finishes
})