我的问题与其他问题有何不同
我使用的是 ES6 语法。我查看的其他问题使用 ES5 语法。
问题
为什么 alert();
在 console.log();
之前运行?我是否可以让 console.log();
在 alert();
之前执行?
我的代码
console.log("Hello!");
alert("Hi!");
最佳答案
console.log("Hello!");
setTimeout(() => alert("Hi!"), 0);
基本上:从技术上讲,console.log() 首先被调用。† 然而,浏览器实际上重新绘制自身或控制台更新也需要一些时间。不过,在它可以 self 更新之前, alert() 已经触发,它说“在我确认之前停止一切”。所以消息发送到 console.log,但视觉确认不及时。
在 0 秒 setTimeout 中包装一些东西是告诉 JavaScript“嘿,在一切都完成运行和更新之后立即给我打电话的老把戏。”
† 您可以通过在警报对话框之前执行类似 console.log(new Date().toString());
的操作来验证这一点,然后等待几分钟再关闭警报。请注意,它记录的是您第一次运行它时的时间,不是现在的时间。
关于javascript - 为什么 alert();在 console.log() 之前运行;,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47127173/