Event
Event — classe para publicar eventos e se inscrever em eventos da plataforma Flowlu a partir de uma miniaplicação. É permitido criar qualquer número de instâncias para diferentes eventos-alvo.
import { Event } from '@flowlu/miniapp-jssdk'Construtor
Cria uma instância de Event com os parâmetros informados
constructor(params: EventParams)| Parâmetro | Tipo | Descrição |
|---|---|---|
params | EventParams | Parâmetros de criação do evento |
Propriedades
events
Objeto EventCallbacks<EventEventName> com o manipulador do evento onEmit
get events(): EventCallbacks
set events(value: EventCallbacks)target
Objeto EventTarget que identifica o evento-alvo, definido por meio do construtor
target: EventTargetMétodos
destroy
Remove inscrições e libera recursos
destroy(): voidemit
Publica um evento na plataforma — todos os inscritos do evento-alvo EventTarget recebem os dados EventInfo
static async emit(params: EventEmitParams): Promise<any>| Parâmetro | Tipo | Descrição |
|---|---|---|
params | EventEmitParams | Parâmetros de publicação do evento |
off
Remove uma inscrição estabelecida anteriormente via on() ou once()
async off(): Promise<any>on
Registra um manipulador do evento onEmit, disparado sempre que ocorre na plataforma um evento com um target correspondente
async on(callback: EventCallback): Promise<any>| Parâmetro | Tipo | Descrição |
|---|---|---|
callback | EventCallback | Manipulador do evento onEmit |
once
Registra um manipulador de uso único do evento onEmit — removido automaticamente após o primeiro disparo
async once(callback: EventCallback): Promise<any>| Parâmetro | Tipo | Descrição |
|---|---|---|
callback | EventCallback | Manipulador do evento onEmit |
Exemplo
import { App, Event } from '@flowlu/miniapp-jssdk'
await App.initializeFrame()
// publicar um evento arbitrário e passar dados arbitrários
await Event.emit({
target: {
component: 'demo',
action: 'ping'
},
info: {
hello: 'world'
}
})
// inscrição na abertura do painel lateral
const sidepanelOpened = new Event({
target: {
code: 'sidepanel_opened'
}
})
await sidepanelOpened.on(async (info) => {
console.log('Painel lateral aberto', info)
// cancelar a inscrição na abertura
await sidepanelOpened.off()
// e inscrição única no fechamento
new Event({
target: {
code: 'sidepanel_closed'
}
}).once((info) => {
console.log('Painel lateral fechado', info)
})
})const App = window.FlowluMiniApp;
await App.initializeFrame();
// publicar um evento arbitrário e passar dados arbitrários
await App.Frame.Event.emit({
target: {
component: 'demo',
action: 'ping'
},
info: {
hello: 'world'
}
});
// inscrição na abertura do painel lateral
const sidepanelOpened = new App.Frame.Event({
target: {
code: 'sidepanel_opened'
}
});
await sidepanelOpened.on(async (info) => {
console.log('Painel lateral aberto', info);
// cancelar a inscrição na abertura
await sidepanelOpened.off();
// e inscrição única no fechamento
new App.Frame.Event({
target: {
code: 'sidepanel_closed'
}
}).once((info) => {
console.log('Painel lateral fechado', info);
});
});