javascript - 为什么 alert();在 console.log() 之前运行;

标签 javascript console.log alerts

我的问题与其他问题有何不同

我使用的是 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/

相关文章:

javascript - 无法捕获 chrome 的 console.log 中显示的 JS 错误

javascript - 基于实时时钟

javascript - 如何使用 webdriver 和 IEDriver 处理 javascript 警报

javascript - 在回调函数中保留 "this"

javascript - 如何有一个不在滚动对象旁边的滚动条?

node.js - 调试第三方安装的 Node 模块

javascript - 区分 HTML 表单 SUBMIT 和基于控制台的表单 SUBMIT

sharepoint - 如何通过 Web 服务添加新的 SharePoint 警报

javascript - 如何在不同位置渲染指令内的内容

php - 点击 map 后获取地址