¿Por qué setTimeout (devolución de llamada), Promise.resolve () .then (devolución de llamada) y requestAnimationFrame (devolución de llamada) tienen una prioridad diferente para ejecutar? El siguiente es un ejemplo de código:
setTimeout(()=>console.log(1)); Promise.resolve(2).then(console.log); requestAnimationFrame(()=>console.log(3)); console.log(4); window.onclick = ()=>console.log(5); window.dispatchEvent(new Event('click'));sincronización
console.log(4); window.onclick = ()=>console.log(5); window.dispatchEvent(new Event('click'));Microtareas
Promise.resolve(2).then(console.log); requestAnimationFrame(()=>console.log(3));tarea macro
setTimeout(()=>console.log(1));