/ / Los eventos de la interfaz de usuario (click, mousedown, etc.) pasan por el bucle de eventos en JavaScript - javascript, eventos

Los eventos de la interfaz de usuario (click, mousedown, etc.) pasan por el bucle de eventos en JavaScript: javascript, eventos

Cuanto más aprendo sobre JavaScript y su Modelo de concurrencia, más confundido estoy ... Reciente fuente de confusión fue ¿Se garantiza que JavaScript sea de un solo hilo? + gran curso en PS: https://app.pluralsight.com/library/courses/asynchronous-javascript-reasoning .

Después de leer / ver una pregunta apareció en mi cabeza con respecto a Interacción UI como fuente de eventos: sabemos que la IU está bloqueada si algún código esejecutando Por lo tanto, el único momento en que se puede activar el evento (por ejemplo, cuando realmente puede hacer clic en un botón y provocar un evento de clic) es cuando el motor de JavaScript no está ocupado (nada en la pila de llamadas ni nada en la cola), de lo contrario, la IU se congela. ¿Entonces la cola dada está vacía? ¿El evento de clic (o cualquier evento de IU) termina en la cola de todos modos? ¿O se procesan instantáneamente (es decir, llaman a los detectores de eventos de forma sincrónica)?

Respuestas

0 para la respuesta № 1

tl; dr: Sí, el evento de clic (o cualquier evento de IU) termina en la cola.

Un tiempo de ejecución de JavaScript contiene una cola de mensajes. Cada mensaje se procesa completamente antes de procesar cualquier otro mensaje. En los navegadores web, los mensajes se agregan cada vez que ocurre un evento y hay un detector de eventos adjunto. Si no hay oyente, el evento se pierde. Por lo tanto, un clic en un elemento con un controlador de eventos de clic agregará un mensaje, al igual que con cualquier otro evento.