Crée une instance de JsEvent.
Instanciez EventDelegate ou EventHandler à la place.
Événement déclenché chaque fois qu'un handler est ajouté via add ou push.
Initialisé de façon lazy via _p_initOnHandlerAdded lors du premier accès — aucun coût si personne ne s'y abonne.
Événement déclenché une seule fois lorsque tous les handlers sont supprimés via clear.
Initialisé de façon lazy via _p_initOnHandlerCleared lors du premier accès — aucun coût si personne ne s'y abonne.
Événement déclenché chaque fois qu'un handler est retiré via remove.
Initialisé de façon lazy via _p_initOnHandlerRemoved lors du premier accès — aucun coût si personne ne s'y abonne.
Protected_ProtectedRetourne les données associées à la clé donnée, ou null si la clé
n'existe pas.
Point d'accès protégé au dictionnaire interne — permet aux classes
concrètes d'accéder aux données d'un callback sans exposer
#_callbacks directement.
La clé du callback à récupérer.
Les données du callback, ou null si la clé est absente.
Protected_ProtectedInitialise l'instance de onHandlerAdded.
Une nouvelle instance de EventHandler.
Protected_ProtectedInitialise l'instance de onHandlerCleared.
Une nouvelle instance de EventHandler.
Protected_ProtectedInitialise l'instance de onHandlerRemoved.
Une nouvelle instance de EventHandler.
Ajoute un callback avec une clé spécifique.
Clé identifiant le callback.
Le callback à ajouter.
Arguments par défaut transmis au callback à chaque appel.
L'instance courante pour permettre le chaînage.
Déclenche tous les callbacks enregistrés et retourne leur résultat sous une forme simplifiée.
Type de la valeur retournée par les callbacks.
Par défaut ReturnType<TCallback>.
Arguments transmis à chaque callback lors de l'appel.
null si aucun callback, la valeur directe si un seul,
un tableau de valeurs si plusieurs.
const event = new JsEvent<() => string>();
event.add('a', () => 'bonjour');
event.add('b', () => 'monde');
const result = event.call(); // ['bonjour', 'monde']
invoke — variante typée retournant un EventCallResult discriminé
Utilisez EventDelegate ou EventHandler et leur méthode invoke qui retourne un EventCallResult discriminé, plus sûr à utiliser en TypeScript.
Supprime tous les callbacks enregistrés en une seule opération O(1).
Capture la liste des callbacks avant l'effacement, puis déclenche onHandlerCleared après — garantissant que la Map est vide avant la notification, sans risque de double déclenchement si un observateur appelle add dans son callback.
L'instance courante pour permettre le chaînage.
Retourne la liste des callbacks actuellement enregistrés, dans leur ordre d'enregistrement.
Équivalent de
Delegate.GetInvocationList()
en C#.
Un tableau contenant tous les callbacks enregistrés.
Vérifie si un callback est enregistré sous la clé donnée.
La clé à vérifier.
true si un callback existe pour cette clé, false sinon.
Indique si au moins un callback est enregistré.
true si l'événement a au moins un callback, false sinon.
Déclenche tous les callbacks enregistrés avec les arguments fournis.
Le résultat dépend du nombre de callbacks enregistrés :
{ type: 'empty' } si aucun callback n'est enregistré.{ type: 'single', value } si un seul callback est enregistré.{ type: 'multiple', values } si plusieurs callbacks sont enregistrés.Arguments transmis à chaque callback lors de l'appel.
Accepte n'importe quelle signature (any[]).
Un EventCallResult décrivant le résultat de l'appel.
const event = new JsEvent<(n: number) => number>();
event.add('double', (n) => n * 2);
const result = event.invoke(5);
if (result.type === 'single') {
console.log(result.value); // 10
}
Ajoute un callback en générant automatiquement une clé unique.
Le callback à ajouter.
Arguments par défaut transmis au callback à chaque appel.
La clé générée.
Supprime le callback associé à la clé donnée et le retourne.
Déclenche onHandlerRemoved si des observateurs sont abonnés.
La clé du callback à supprimer.
Le callback supprimé, ou null si la clé n'existe pas.
Gestionnaire d'événements générique — version historique de EventDelegate.
JsEventaccepte n'importe quelle signature de callback viaany[]et délègue son invoke à un EventDelegate éphémère reconstruit à chaque appel. Cette reconstruction systématique est la principale raison de la dépréciation : elle est inutilement coûteuse et ne présente aucun avantage par rapport à l'utilisation directe de EventDelegate ou EventHandler.Example
See
Deprecated
Utilisez EventDelegate ou EventHandler à la place.