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.
Écrire le compteur
Il reçoit
plates_countet affiche un avertissement au-delà d'un seuil, passé pardeps. Il n'émet rien.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_counta maintenant un abonné.Sentir la livraison FIFO
Cochez le mode verbeux et cliquez. Le broker reçoit
click, le livre à la pile ; la pile publieplates_countdepuis sonhandleMessage; ce message est mis en file et livré au compteur après que la livraison declickest 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.
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 écritcounter = nullà la place, le broker aurait gardé l'objet abonné : un abonné fantôme, qui continue de recevoir. Erreur classique.