@rotomeca/event - v5.0.0
    Preparing search index...

    Class EventHandler<TArgs, T>

    Implémentation concrète de AEventHandler.

    Gestionnaire d'événements typé inspiré du pattern event de C#. Chaque callback est appelé indépendamment — le résultat de l'un n'influence pas l'appel du suivant.

    Pour un comportement circulaire où chaque callback reçoit le résultat du précédent, utiliser CircularEventHandler à la place.

    const onClick = new EventHandler<[MouseEvent]>();

    onClick.add('logger', (e) => console.log(e.clientX));
    onClick.add('tracker', (e) => analytics.track(e));

    onClick.invoke(new MouseEvent('click'));

    Type Parameters

    • TArgs extends any[] = any[]

      Tuple représentant les types des arguments transmis aux callbacks lors de l'appel. Par défaut any[].

    • T extends Func<TArgs> = Func<TArgs>

      Type des callbacks attachés à l'événement, doit étendre Func<TArgs>. Par défaut Func<TArgs>.

    Hierarchy (View Summary)

    Index

    Constructors

    Accessors

    • get keys(): string[]

      Retourne la liste des clés des callbacks actuellement enregistrés.

      Returns string[]

      const keys = event.keys; // ['handler1', 'handler2']
      

    Methods

    • Protected

      Retourne 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.

      Parameters

      • key: string

        La clé du callback à récupérer.

      Returns MayBe<IEventData<TArgs, T>>

      Les données du callback, ou null si la clé est absente.

    • Ajoute un callback avec une clé spécifique.

      Parameters

      • key: string

        Clé identifiant le callback.

      • event: T

        Le callback à ajouter.

      • ...args: Partial<TArgs>

        Arguments par défaut transmis au callback à chaque appel.

      Returns this

      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.

      Parameters

      • ...args: TArgs

        Arguments transmis à chaque callback lors de l'appel.

      Returns Nullable<ReturnType<T> | ReturnType<T>[]>

      null si aucun callback, la valeur directe si un seul, un tableau de valeurs si plusieurs.

      Utilisez invoke à la place. invoke retourne un EventCallResult discriminé qui permet de distinguer sans ambiguïté les trois cas, même si ReturnType<T> est lui-même un objet ou un tableau.

    • 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.

      Returns this

      L'instance courante pour permettre le chaînage.

    • Vérifie si un callback est enregistré sous la clé donnée.

      Parameters

      • key: string

        La clé à vérifier.

      Returns boolean

      true si un callback existe pour cette clé, false sinon.

    • Déclenche tous les callbacks enregistrés avec les arguments fournis.

      Chaque callback est appelé avec ses arguments par défaut suivis des arguments passés à invoke. Les callbacks sont appelés dans leur ordre d'enregistrement, indépendamment les uns des autres.

      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.

      Parameters

      • ...params: TArgs

        Arguments transmis à chaque callback lors de l'appel.

      Returns EventCallResult<T>

      Un EventCallResult décrivant le résultat de l'appel.

      const result = event.invoke('bonjour');

      switch (result.type) {
      case 'empty': break;
      case 'single': console.log(result.value); break;
      case 'multiple': console.log(result.values); break;
      }
    • Ajoute un callback en générant automatiquement une clé unique.

      Parameters

      • event: T

        Le callback à ajouter.

      • ...args: Partial<TArgs>

        Arguments par défaut transmis au callback à chaque appel.

      Returns string

      La clé générée.