JavaScript同步一定比异步先执行吗
//做一个时间戳
var time = new Date().getTime()
setTimeout(()=>{
console.log("我延迟3秒后显示");
console.log(`我实际的延迟时间:${new Date().getTime() - time}`)
},3000)
while(new Date().getTime() - time < 6000){}
console.log("我6秒后的显示")
//我6秒后的显示
//我延迟3秒后显示
//我实际的延迟时间:6002
由上面的例子,我是不是可以得出这样一个结论:同步比异步先执行,必须要同步都执行完成后,才能执行异步函数
setTimeout(()=>{
console.log("我只延迟了一秒")
},1000)
setTimeout(()=>{
while(true){}
},2000)
setTimeout(()=>{
console.log("我只延迟了五秒")
},3000)
console.log("我不是setTimeout函数")
//我不是setTimeout函数
//我只延迟了一秒
上面的例子中,由于while(true){}死循环的关系,导致浏览器假死,不打印出:我只延迟了五秒,是否平时理解的异步函数之间互不影响是错误的
望大牛解答,谢谢各位了
建议题主去阅读事件循环相关技术文档,我这里简单解释一下:
你可以试试这个: