EmberJS - Boucle d'exécution

C'est un domaine dans lequel se déroule la plupart du code interne de l'application. Ceci est utilisé pour le batch et est un moyen de commander ou de réorganiser le travail pour vérifier s'il est efficace et efficient. Il planifie le travail en fonction de files d'attente spécifiques pour terminer le travail par ordre de priorité.

L'intégration de la boucle d'exécution avec une API non-Ember conduit à un rappel asynchrone. Par exemple -

  • Callbacks setTimeout et setInterval
  • Rappels AJAX
  • Gestionnaires d'événements postMessage et messageChannel
  • Rappels Websocket
  • Mise à jour DOM et rappels d'événements

La boucle d'exécution fonctionne dans Ember en fonction des files d'attente spécifiées par priorité -

Ember.run.queues
=> ["sync", "actions", "routerTransitions", "render", "afterRender", "destroy"]
  • sync - Il s'agit d'une file d'attente de priorité plus élevée qui comprend des travaux de synchronisation de liaison.

  • actions - Il s'agit d'une file d'attente de travail générale qui comprend des tâches planifiées.

  • routerTransitions - Il spécifie les tâches de transition dans le routeur.

  • render - Il est utilisé pour le rendu des jobs qui mettent à jour le DOM.

  • afterRender - Il exécute les travaux après avoir terminé les tâches planifiées.

  • destroy - Il s'agit d'une file d'attente de priorité inférieure qui met fin aux travaux dont la destruction est prévue.

Exécution de travaux basés sur des files d'attente

Suivez ces étapes pour l'exécution de Jobs basés sur les files d'attente -

Step 1- Dans cette étape, les travaux en attente de la file d'attente la plus prioritaire seront vérifiés dans CURRENT_QUEUE. La boucle d'exécution sera terminée s'il n'y a pas de travaux en attente.

Step 2- Spécifiez la nouvelle file d'attente temporaire comme WORK_QUEUE .

Step 3- Transférer les jobs de CURRENT_QUEUE vers WORK_QUEUE .

Step 4- Traitez successivement les jobs dans WORK_QUEUE .

Step 5 - Répétez à partir de l'étape 1.

Comportement de la boucle d'exécution lors du test

Si nous essayons de planifier le travail sans boucle d'exécution, Ember lancera une erreur lorsque l'application est en mode test. Considérez les raisons suivantes pour comprendre pourquoi les Autoruns sont désactivés -

  • Si vous ne parvenez pas à ouvrir la boucle d'exécution avant de planifier des rappels, alors Autoruns ne fera aucune erreur dans la production.

  • La désactivation des exécutions automatiques identifie les échecs de test incorrects qui se produisent lorsqu'une application s'exécute en dehors d'une boucle d'exécution et facilite le test de votre application.

Pour plus d'informations sur ces boucles d'exécution avec un exemple, consultez ce lien .