Type du record transmis et muté entre les callbacks.
Doit étendre Record<string, unknown>. Par défaut
Record<string, unknown>.
Type des callbacks, doit retourner Partial<TRecord>.
Par défaut Func<[TRecord], Partial<TRecord>>.
Type du record transmis et muté entre les callbacks.
Doit étendre Record<string, unknown>. Par défaut
Record<string, unknown>.
Type des callbacks, doit retourner Partial<TRecord>.
Par défaut Func<[TRecord], Partial<TRecord>>.
Logger si un problème survient dans le invoke.
É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.
Déclenche la chaîne de callbacks et retourne le record final.
Conserve la compatibilité avec l'ancienne API JsCircularEvent.call().
Préférer invoke qui retourne un CircularEventCallResult
discriminé, plus sûr à utiliser en TypeScript.
Le record initial transmis au premier callback.
Le record final après passage dans tous les callbacks,
ou null si aucun callback n'est enregistré.
Utilisez invoke à la place.
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 la chaîne de callbacks en propageant un record muté de l'un à l'autre.
Pour chaque callback enregistré, dans l'ordre d'enregistrement :
Si args_0 n'est pas un plain object, un avertissement est émis via
logger, la valeur est wrappée dans { default: args_0 } et la chaîne
est exécutée normalement. Le résultat est alors de type 'other'.
Le record initial transmis au premier callback.
Un CircularEventCallResult décrivant le résultat :
{ type: 'empty' } si aucun callback n'est enregistré.{ type: 'record', value } si la chaîne s'est exécutée normalement.{ type: 'other', value, originalValue } si args_0 n'était pas
un plain object.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 circulaire — chaque callback reçoit et transforme le résultat du précédent.
Contrairement à EventHandler où les callbacks sont indépendants,
CircularEventHandlerpropage un record muté de callback en callback. Chaque résultat est mergé dans le record courant avant d'être transmis au callback suivant.Inspiré du pattern
Middlewarede C# / ASP.NET Core, où chaque maillon de la chaîne peut enrichir la requête avant de la passer au suivant.Example
See