当执行setTimeout的线程执行完毕后,才会执行setTimeout的逻辑,这是因为,js引擎会将setTimeout放入单独的队列,当前线程执行完毕后,再执行timeout队列。

API

setTimeout(func,ms,param1,param2);

举例

console.log("before....");
setTimeout(function(){
    console.log("setTimeout function().....");
},0); //故意将延迟时间设置为0,立刻执行
console.log("after....");

结果

before....
after....
setTimeout function().....

event-loop,线程栈的执行完毕后,才会执行事件队列