Javascript wait()函数

eds*_*999 17 javascript function wait

我想创建一个javascript'wait'函数.我该怎么编辑?

function wait(waitsecs) {
    setTimeout(donothing(), 'waitsecs');
}

function donothing() {
    //
}

Run Code Online (Sandbox Code Playgroud)

Dav*_*ave 48

Javascript没有线程,因此"等待"会冻结整个页面(并可能导致浏览器完全停止运行脚本).

要专门解决您的问题,您应该donothingsetTimeout通话后删除括号,并使waitsecs数字不是字符串:

console.log('before');
setTimeout(donothing,500); // run donothing after 0.5 seconds
console.log('after');
Run Code Online (Sandbox Code Playgroud)

但这不会停止执行; 在您的函数运行之前将记录"after".

要正确等待,您可以使用匿名函数:

console.log('before');
setTimeout(function(){
    console.log('after');
},500);
Run Code Online (Sandbox Code Playgroud)

您的所有变量仍然会出现在"之后"部分.你不应该链接这些 - 如果你发现自己需要,你需要看看你是如何构建程序的.您也可以使用setInterval/ clearInterval如果需要循环.