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 .