Estoy aprendiendo el bucle de eventos, pero no distingo la terminología sobre eventos y tareas. En el contexto del bucle de eventos, puedo entender "tarea" en MDN,
las tareas son desencadenadas por eventos. Una tarea es cualquier código JavaScript que está programado para ejecutarse mediante los mecanismos estándar, como iniciar inicialmente la ejecución de un programa, ejecutar una devolución de llamada de evento o activar un intervalo o tiempo de espera.
Las tareas asíncronas se desencadenan por eventos. ¿Puedo entender que los eventos son tareas que se ejecutaron en otro hilo? ¿Qué es un evento en el bucle de eventos?
Los eventos son señales que le indican al bucle de eventos que una tarea ya está lista para ejecutarse. No son parte del ciclo de eventos, vienen de afuera. Los ejemplos son eventos DOM (como clics, eventos de teclado, etc.), eventos de red (cambio de estado listo, progreso), eventos de temporizador (de setTimeout ). Los eventos no son tareas en sí mismos. Pueden o no ser activados por otro subproceso; con bastante frecuencia, el bucle de eventos los sondea.
Los eventos no ocurren en el bucle de eventos. Cuando se envía un evento, la función de devolución de llamada que debe ejecutarse se envía a la cola de macrotareas. No hay un lugar designado para los eventos dentro del bucle de eventos, ya que los eventos no son funciones en sí mismos. (macrotarea y tarea es lo mismo)
Para darle un ejemplo concreto, digamos que tiene un botón y un usuario hace clic en ese botón. Cuando el usuario hace clic en ese botón, la función de devolución de llamada que debe ejecutarse se envía a la cola de macrotareas y cuando la pila de llamadas está completamente vacía , el bucle de eventos empujará la función de devolución de llamada de la cola de macrotareas a la pila de llamadas. También hay una cola de microtareas, pero no quiero confundirte.
Sugiero leer los siguientes artículos que describen perfectamente el bucle de eventos en Chrome y cómo funciona: