¿Cuál es la relación entre tareas sincrónicas, tareas asincrónicas, micro tareas y macro tareas en js?

En JavaScript, las tareas sincrónicas y asincrónicas se ejecutan en paralelo, pero el orden de ejecución puede ser diferente. Las tareas sincrónicas ingresarán directamente al hilo principal para su ejecución, mientras que las tareas asincrónicas ingresarán primero a la cola de Event Loop. Event Loop es una cola de eventos responsable de monitorear tareas asincrónicas. Una vez que se completa la tarea asincrónica (como se completa una solicitud de red), Event Loop agregará la función de devolución de llamada a una cola de tareas para ejecutarse y esperará la ejecución cuando el hilo principal está inactivo.

Tanto las microtareas como las macrotareas son tareas asincrónicas. Una microtarea generalmente se refiere a una tarea asincrónica especial que se ejecuta inmediatamente después de que se ejecuta una macrotarea, como la función de devolución de llamada de Promise. Cuando el estado de la Promesa cambia a resuelto (o rechazado), su función de devolución de llamada se agregará a la cola de microtareas. Las tareas macro generalmente incluyen tareas como setTimeout, setInterval, setImmediate, requestAnimationFrame u operaciones de E/S. El tiempo de ejecución de la macrotarea es después de que se haya ejecutado la cola de microtareas.

En general, las tareas asincrónicas se agregan a la cola de Event Loop y esperan su ejecución cuando el hilo principal está inactivo. Las microtareas son tareas que se ejecutan inmediatamente después de que se ejecuta la macrotarea actual, mientras que las macrotareas suelen ser tareas que se ejecutan después de que se ejecutan todas las microtareas.

Supongo que te gusta

Origin blog.csdn.net/qq2468103252/article/details/130948158
Recomendado
Clasificación