Appearance
kapp.events (et .events par service)
Petit bus d'événements interne. Chaque service expose son propre .events (kapp.chat.events, kapp.twitch.events, …) ; kapp.events est le bus global de l'instance.
Service partagé appli + widget : API identique.
Quand l'utiliser (vs alternative)
- Écouter des événements bas niveau émis par un service (ex. fin d'un sondage Twitch).
- Pour les cas courants, préfère les helpers dédiés :
kapp.chat.onMessage/onCommand,kapp.chat.onActivityChange(niveau d'activité du chat, typéChatActivity, voir chat.md),kapp.twitch.onFollow/onSub/onResub/onSubGift/onRaid(alertes Twitch typées, voir twitch.md), les hooks de cycle de vie (onBeforeExit/onBeforeAbort/onBeforeFinish). Tu auras rarement besoin deeventsdirectement.
Méthodes
on(eventName: string, callback): void— écoute.once(eventName: string, callback): void— écoute une seule fois.off(eventName: string, callback): void— retire un écouteur.
La classe interne possède aussi emit, mais les façades typées de services comme plugin ou overlay exposent seulement les abonnements. Utilise les méthodes métier du service pour envoyer une action ; events n'est pas un transport vers un plugin, une autre appli ou le serveur.
Exemple (V2, exécutable)
js
// Réagit à la fin d'un sondage Twitch
kapp.twitch.events.on('poll.end', (data) => {
console.log('Sondage terminé !', data);
});Pièges
- Le bus appelle les callbacks de façon synchrone : leurs Promises ne sont pas attendues. Intercepte les rejets dans chaque callback asynchrone ; une exception synchrone peut interrompre la diffusion aux callbacks suivants.
- Les noms d'événements dépendent du service ; consulte le service concerné plutôt que de deviner.
off()exige la même référence de fonction queon().once()retire son wrapper après son déclenchement ; pour un abonnement annulable avant déclenchement, préfèreon/offexplicites. Ne réenregistre pas les callbacks à chaque rendu ou rafraîchissement.