Bus de Eventos
El bus de eventos es un objeto que se puede obtener a traves de la propiedad events
del sdk.
Se utiliza para suscribirse a los eventos emitidos por los clientes y servicios de Alfa.
const eventBus = sdk.events;
Suscribirse a un evento
El bus de eventos posee un metodo registerHandler
que permite suscribirse a un evento. Este metodo recibe como parametro el nombre del evento al que se desea suscribirse y una funcion asincrona que se ejecutara cada vez que se emita el evento.
eventBus.registerHandler<MintAssetEvent>(MintAssetEvent.eventName, async (event) => {
console.log(`New asset minted: ${event.payload.asset.assetId}`);
});
La funcion registerHandler
es generica y recibe como parametro el tipo de evento al que se desea suscribirse. Esto permite que la funcion que se ejecuta al emitirse el evento tenga acceso al payload del evento con el tipo correcto.
La funcion de registro debe ser asyncrona por consideraciones de diseño del sdk.
Los nombres de los eventos se pueden obtener a traves de la propiedad eventName
de cada evento. Ver la seccion Lista de eventos disponibles para ver la lista de eventos disponibles.
Desuscribirse de un evento
La funcion registerHandler
devuelve un objeto de tipo EventSubscription
que permite desuscribirse del evento al que se suscribio. Para desuscribirse, se debe llamar al metodo unsubscribe
del objeto EventSubscription
.
const subscription = eventBus.registerHandler<MintAssetEvent>(MintAssetEvent.eventName, async(event) => {
console.log(`New asset minted: ${event.payload.asset.assetId}`);
});
subscription.unsubscribe(); // Deja de escuchar el evento
El objeto EventSubscription
es compatible con la interfaz Subscription
de rxjs, por lo que se puede utilizar el metodo unsubscribe
de rxjs para desuscribirse de un evento.
const subs$ = new Subscription(); // Esto es de rxjs
subs$.add(eventBus.registerHandler<MintAssetEvent>(MintAssetEvent.eventName, async(event) => {
console.log(`New asset minted: ${event.payload.asset.assetId}`);
}));
subs$.unsubscribe(); // Deja de escuchar el evento