javascript - JS : setTimeOut without function argument?

标签 javascript timeout settimeout

<分区>

为什么我们需要将函数传递给 Javascript setTimeOut https://developer.mozilla.org/en-US/docs/Web/API/WindowTimers.setTimeout

为什么我们不能像 sg 一样简单

setTimeOut(1000);

我可以在其中传递一个空的或不存在的函数吗?

我只想在每次迭代后在 for 循环中等待。

最佳答案

Javascript 是单线程的。您可以使用 setTimemout 来推迟操作,但线程将继续。所以

function some() {
  doStuff();
  setTimeout(otherStuff, 1000);
  doMoreStuff();
}

随后将运行 doStuffdoMoreStuff,并在一秒钟后运行 otherStuff。这就是为什么将 setTimeout 用作延迟本身是无用且不可能的。如果 doMoreStuff 应该被推迟,你应该为延迟做回调:

function some() {
  doStuff();
  setTimeout(doMoreStuff, 1000);
}

或者 otherstuffdoMoreStuff 延迟:

function some() {
  doStuff();
  setTimeout(function () {
               otherStuff();
               doMoreStuff()
             }, 1000);
}

也许是我对 this SO-question 的回答也很有用。

关于javascript - JS : setTimeOut without function argument?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28406978/

相关文章:

javascript - javascript setTimeout 和递归函数执行流程

javascript - 在元素中保存超时

javascript - 如何在javascript中显示消息3秒

javascript - 通过 jquery/ajax 每 x 秒刷新一次 div

javascript - 如何限制文本框只能输入十六进制值

javascript - 如何在 Angular 中使用 JavaScript 代码?

javascript - 如果函数运行时间超过 n 秒,如何抛出和捕获错误

javascript - d3.js - 使用 d3.js 饼图中的 3D View

Java URL连接超时

javascript:如何在短时间间隔内单击多个复选框时延迟提交数据?