Event
Event — clase para publicar eventos y suscribirse a eventos de la plataforma Flowlu desde una miniaplicación. Se permite crear cualquier número de instancias para diferentes eventos objetivo.
import { Event } from '@flowlu/miniapp-jssdk'Constructor
Crea una instancia de Event con los parámetros indicados
constructor(params: EventParams)| Parámetro | Tipo | Descripción |
|---|---|---|
params | EventParams | Parámetros de creación del evento |
Propiedades
events
Objeto EventCallbacks<EventEventName> con el manejador del evento onEmit
get events(): EventCallbacks
set events(value: EventCallbacks)target
Objeto EventTarget que identifica el evento objetivo, se establece mediante el constructor
target: EventTargetMétodos
destroy
Elimina las suscripciones y libera los recursos
destroy(): voidemit
Publica un evento en la plataforma — todos los suscriptores del evento objetivo EventTarget reciben los datos EventInfo
static async emit(params: EventEmitParams): Promise<any>| Parámetro | Tipo | Descripción |
|---|---|---|
params | EventEmitParams | Parámetros de publicación del evento |
off
Elimina una suscripción establecida previamente mediante on() o once()
async off(): Promise<any>on
Registra un manejador del evento onEmit, se dispara cada vez que ocurre en la plataforma un evento con un target coincidente
async on(callback: EventCallback): Promise<any>| Parámetro | Tipo | Descripción |
|---|---|---|
callback | EventCallback | Manejador del evento onEmit |
once
Registra un manejador de un solo uso del evento onEmit — se elimina automáticamente tras el primer disparo
async once(callback: EventCallback): Promise<any>| Parámetro | Tipo | Descripción |
|---|---|---|
callback | EventCallback | Manejador del evento onEmit |
Ejemplo
import { App, Event } from '@flowlu/miniapp-jssdk'
await App.initializeFrame()
// publicar un evento arbitrario y pasar datos arbitrarios
await Event.emit({
target: {
component: 'demo',
action: 'ping'
},
info: {
hello: 'world'
}
})
// suscripción a la apertura del panel lateral
const sidepanelOpened = new Event({
target: {
code: 'sidepanel_opened'
}
})
await sidepanelOpened.on(async (info) => {
console.log('Panel lateral abierto', info)
// cancelar la suscripción a la apertura
await sidepanelOpened.off()
// y suscripción única al cierre
new Event({
target: {
code: 'sidepanel_closed'
}
}).once((info) => {
console.log('Panel lateral cerrado', info)
})
})const App = window.FlowluMiniApp;
await App.initializeFrame();
// publicar un evento arbitrario y pasar datos arbitrarios
await App.Frame.Event.emit({
target: {
component: 'demo',
action: 'ping'
},
info: {
hello: 'world'
}
});
// suscripción a la apertura del panel lateral
const sidepanelOpened = new App.Frame.Event({
target: {
code: 'sidepanel_opened'
}
});
await sidepanelOpened.on(async (info) => {
console.log('Panel lateral abierto', info);
// cancelar la suscripción a la apertura
await sidepanelOpened.off();
// y suscripción única al cierre
new App.Frame.Event({
target: {
code: 'sidepanel_closed'
}
}).once((info) => {
console.log('Panel lateral cerrado', info);
});
});