消息队列的优先级:
微任务第一
交互队列第二
网络队列第三
延时队列第四
// 死循环指定的时间
function delay(duration) {
var start = Date.now()
while (Date.now() - start < duration) {}
}
function addDelay() {
console.log('添加延时队列')
setTimeout(() => {
console.log('延时队列执行')
}, 100)
}
function addNetWork() {
console.log('添加网络队列')
fetch('./demo2.js').then(() => {
console.log('网络队列执行')
})
}
function addInteraction() {
console.log('添加交互队列')
interaction.onclick = function () {
console.log('交互队列执行')
}
delay(3000)
}
begin.onclick = function () {
addDelay()
addNetWork()
addInteraction()
Promise.resolve().then(() => {
console.log('微任务执行')
})
console.log('添加微任务')
console.log('===========')
}