setTimeout()函数是否等到函数执行之后再转到下一行?

时间:2016-04-17 22:14:48

标签: javascript

setTimeout()函数是否一直等到它内部的函数执行,然后再转到下一行(行'AFTER“setTimeout()”)?或者,setTimeout()只是解析代码,同时设置在“x”时间后激活的函数的计时器?我问这个是因为我不知道“setTimeout()”函数是否只是通过在继续之前为另一个函数设置一个计时器来完成自己(“setTimeout()”中的函数不必完成继续前进) ,或者如果“setTimeout()”函数停止执行下一行,直到“setTimeout()的”函数完成。

3 个答案:

答案 0 :(得分:2)

它不等待。计时器启动,然后执行下一行,然后某个时候setTimeout函数触发

答案 1 :(得分:1)

不,setTimeout不会阻止下一行的执行。它设置了一个在给定超时到期后调用的函数。

运行下面的代码片段进行演示:



setTimeout(function() {
  document.getElementById('log').innerHTML += 'timeout!!<br>';
}, 1000);

document.getElementById('log').innerHTML += 'hello world<br>';
&#13;
<div id="log"></div>
&#13;
&#13;
&#13;

答案 2 :(得分:0)

setTimeout()是异步的,因此下一行将立即执行