San*_*ker 6 javascript alerts console.log
我的问题与他人有何不同
我正在使用ES6语法。我看过的其他问题使用ES5语法。
问题
为什么alert();要先运行console.log();?我可以让这个console.log();之前执行alert();?
我的密码
console.log("Hello!");
alert("Hi!");
Run Code Online (Sandbox Code Playgroud)
console.log("Hello!");
setTimeout(() => alert("Hi!"), 0);
Run Code Online (Sandbox Code Playgroud)
基本上:CONSOLE.LOG()是被称为第一,在技术上。†但是,浏览器实际上会重新绘制自身,或者控制台更新也需要一些时间。不过,在它无法更新之前,已经触发了alert(),它说“在确认之前停止所有操作”。因此,发送到console.log的消息已发送,但视觉确认未及时进行。
在0秒的setTimeout中包装内容是一个古老的技巧,告诉JavaScript“嘿,在一切运行和更新完成后立即打电话给我。”
†您可以通过console.log(new Date().toString());在警报对话框之前执行类似的操作,然后等待几分钟再关闭警报,来验证此情况。请注意,它记录的是您第一次运行的时间,而不是现在的时间。
| 归档时间: |
|
| 查看次数: |
358 次 |
| 最近记录: |