Tuto 2 : ajouter un abonné au même message

Un composant de plus, abonné à plates_count. Ni la pile ni le bouton ne changent d'une ligne : c'est ça, le découplage.

Fondé sur : livraison, objet standard, audit. Projet : tutos/projets/assiettes/index2.html.

  1. Écrire le compteur

    Il reçoit plates_count et affiche un avertissement au-delà d'un seuil, passé par deps. Il n'émet rien.

  2. L'ajouter à la composition

    Une ligne de plus dans index2.html. Les deux autres composants ne sont pas touchés : ils ne savent pas qu'il existe.

    L'audit ne signale plus d'orphelin : plates_count a maintenant un abonné.

  3. Sentir la livraison FIFO

    Cochez le mode verbeux et cliquez. Le broker reçoit click, le livre à la pile ; la pile publie plates_count depuis son handleMessage ; ce message est mis en file et livré au compteur après que la livraison de click est terminée. Jamais imbriqué.

    INFO (broker): received from button: {"click":{}} INFO (broker): delivering click v1 to stack INFO (stack): reçoit {"click":{}} INFO (broker): received from stack: {"plates_count":{"count":1}} INFO (broker): delivering plates_count v1 to counter INFO (counter): reçoit {"plates_count":{"count":1}}

    Le chronogramme dans la référence.

  4. Détruire proprement

    Le bouton « détruire le compteur » appelle counter.destroy(). Le compteur se désinscrit et vide son support. Cliquez encore : la pile continue, le compteur ne reçoit plus rien. Si vous aviez écrit counter = null à la place, le broker aurait gardé l'objet abonné : un abonné fantôme, qui continue de recevoir. Erreur classique.