Event Bus
In-process publish/subscribe with wildcards.
1 min readEdit this page
Usage
import { EventBus } from '@restjs/events'
const bus = new EventBus()
bus.on('user.created', async (event) => {
console.log(event.payload)
})
await bus.emit('user.created', { id: 1 })Wildcards
bus.on('user.*', handler) // user.created, user.deleted
bus.on('*', handler) // everythingOne-time and wait
bus.once('payment.confirmed', handler)
const event = await bus.waitFor('payment.confirmed', 5000)Decorators
import { OnEvent, registerEventHandlers } from '@restjs/events'
class Notifications {
@OnEvent('user.created')
async sendWelcome(event) { await sendEmail(event.payload.email) }
}
registerEventHandlers(new Notifications(), bus)