EmberJS - Ejecutar bucle
Es un área donde tiene lugar la mayor parte del código interno de la aplicación. Esto se usa para lotes y es una forma de ordenar o reordenar el trabajo para verificar si es efectivo y eficiente. Programa el trabajo basándose en colas específicas para completar el trabajo en orden de prioridad.
La integración del ciclo de ejecución con una API que no es de Ember conduce a una devolución de llamada asincrónica. Por ejemplo
- devoluciones de llamada setTimeout y setInterval
- Devoluciones de llamada AJAX
- Controladores de eventos postMessage y messageChannel
- Devolución de llamada de Websocket
- Actualización de DOM y devoluciones de llamada de eventos
El ciclo de ejecución funciona en Ember en función de las colas especificadas por prioridad:
Ember.run.queues
=> ["sync", "actions", "routerTransitions", "render", "afterRender", "destroy"]
sync - Es una cola de mayor prioridad que incluye trabajos de sincronización de enlace.
actions - Es una cola de trabajo general que incluye tareas programadas.
routerTransitions - Especifica los trabajos de transición en el enrutador.
render - Se utiliza para renderizar los trabajos que actualizan el DOM.
afterRender - Ejecuta los trabajos después de completar las tareas programadas.
destroy - Es una cola de menor prioridad que finaliza los trabajos que están programados para su destrucción.
Ejecución de trabajos basados en colas
Siga estos pasos para la ejecución de trabajos basados en colas:
Step 1- En este paso, los trabajos pendientes de la cola de mayor prioridad se comprobarán en CURRENT_QUEUE. El ciclo de ejecución se completará si no hay trabajos pendientes.
Step 2- Especifique la nueva cola temporal como WORK_QUEUE .
Step 3- Transfiera los trabajos de CURRENT_QUEUE a WORK_QUEUE .
Step 4- Procesar sucesivamente los trabajos en WORK_QUEUE .
Step 5 - Repita desde el paso 1.
Comportamiento de Run Loop durante la prueba
Si intentamos programar el trabajo sin bucle de ejecución, Ember arrojará un error cuando la aplicación esté en modo de prueba. Considere las siguientes razones para comprender por qué las Autoruns están deshabilitadas:
Si no puede abrir el ciclo de ejecución antes de programar devoluciones de llamada en él, Autoruns no cometerá ningún error en la producción.
La desactivación de las ejecuciones automáticas identifica las fallas de prueba incorrectas que ocurren cuando una aplicación se ejecuta fuera de un ciclo de ejecución y ayuda en la prueba de su aplicación.
Para obtener más información sobre estos ciclos de ejecución junto con un ejemplo, consulte este enlace .