eventloop with block

by jin5354

JavaScript

const startingTimePoint = Date.now()

console.log(Date.now() - startingTimePoint, 'A console')

setTimeout(() => {
  console.log(Date.now() - startingTimePoint, 'B setTimeout')
}, 0)
setTimeout(() => {
  console.log(Date.now() - startingTimePoint, 'F setTimeout')
}, 0)

Promise.resolve().then(() => {
	console.log(Date.now() - startingTimePoint, 'C promise')
})

requestAnimationFrame(() => {
  console.log(Date.now() - startingTimePoint, 'D raf')
})

console.log(Date.now() - startingTimePoint, 'E console')

block(200)

function block(time){ //假装我是一个耗时任务
  const now = Date.now()
	while(Date.now() - now < time) {}
}