EmberJS - Run Loop
È un'area in cui si svolge la maggior parte del codice interno dell'applicazione. Viene utilizzato per il batch ed è un modo per ordinare o riordinare il lavoro per verificare se è efficace ed efficiente. Pianifica il lavoro in base a code specifiche per completare il lavoro in ordine di priorità.
L'integrazione del ciclo di esecuzione con API non Ember porta a una richiamata asincrona. Ad esempio:
- setTimeout e setInterval callback
- Richiamate AJAX
- gestori di eventi postMessage e messageChannel
- Callback Websocket
- Aggiornamento DOM e callback degli eventi
Il ciclo di esecuzione funziona in Ember in base alle code specificate in base alla priorità -
Ember.run.queues
=> ["sync", "actions", "routerTransitions", "render", "afterRender", "destroy"]
sync - È una coda con priorità più alta che include lavori di sincronizzazione di binding.
actions - È una coda di lavoro generale che include attività pianificate.
routerTransitions - Specifica i lavori di transizione nel router.
render - Viene utilizzato per il rendering dei lavori che aggiornano il DOM.
afterRender - Esegue i lavori dopo aver completato le attività pianificate.
destroy - È una coda di priorità inferiore che termina i lavori che sono pianificati per la distruzione.
Esecuzione di lavori in base alle code
Seguire questi passaggi per l'esecuzione di lavori basati su code:
Step 1- In questo passaggio, i lavori in sospeso con la coda di priorità più alta verranno controllati in CURRENT_QUEUE. Il ciclo di esecuzione sarà completato, se non ci sono lavori in sospeso.
Step 2- Specifica la nuova coda temporanea come WORK_QUEUE .
Step 3- Trasferisci i lavori da CURRENT_QUEUE a WORK_QUEUE .
Step 4- Elaborare successivamente i lavori in WORK_QUEUE .
Step 5 - Ripeti dal passaggio 1.
Comportamento di Run Loop durante il test
Se proviamo a pianificare il lavoro senza ciclo di esecuzione, Ember genererà un errore quando l'applicazione è in modalità di test. Considera i seguenti motivi per capire perché gli Autorun sono disabilitati:
Se non riesci ad aprire il ciclo di esecuzione prima di programmare i callback su di esso, Autoruns non commetterà alcun errore nella produzione.
La disabilitazione degli autorun identifica gli errori di test errati che si verificano quando un'applicazione viene eseguita al di fuori di un ciclo di esecuzione e aiuta nel test della tua applicazione.
Per ulteriori informazioni su questi cicli di esecuzione insieme a un esempio, vedere questo collegamento .