--- displayed_sidebar: servicesSidebar --- import ParameterTypes from "@site/src/components/ParameterTypes" # EventBusService Can keep track of multiple subscribers to different events and run the subscribers when events happen. Events will run asynchronously. ## Implements - [`IEventBusService`](../interfaces/IEventBusService.mdx) ## Constructors ### constructor **new EventBusService**(`«destructured»`, `config`, `isSingleton?`) #### Parameters ## Properties ", "description": "", "optional": true, "defaultValue": "", "expandable": false, "children": [] }, { "name": "__container__", "type": "`any`", "description": "", "optional": false, "defaultValue": "", "expandable": false, "children": [] }, { "name": "__moduleDeclaration__", "type": "Record<`string`, `unknown`\\>", "description": "", "optional": true, "defaultValue": "", "expandable": false, "children": [] }, { "name": "config_", "type": "[`ConfigModule`](../types/ConfigModule.mdx)", "description": "", "optional": false, "defaultValue": "", "expandable": false, "children": [] }, { "name": "enqueue_", "type": "`Promise`<`void`\\>", "description": "", "optional": false, "defaultValue": "", "expandable": false, "children": [] }, { "name": "logger_", "type": "[`Logger`](../interfaces/Logger.mdx)", "description": "", "optional": false, "defaultValue": "", "expandable": false, "children": [] }, { "name": "manager_", "type": "`EntityManager`", "description": "", "optional": false, "defaultValue": "", "expandable": false, "children": [] }, { "name": "shouldEnqueuerRun", "type": "`boolean`", "description": "", "optional": false, "defaultValue": "", "expandable": false, "children": [] }, { "name": "stagedJobService_", "type": "[`StagedJobService`](StagedJobService.mdx)", "description": "", "optional": false, "defaultValue": "", "expandable": false, "children": [] }, { "name": "transactionManager_", "type": "`undefined` \\| `EntityManager`", "description": "", "optional": false, "defaultValue": "", "expandable": false, "children": [] } ]} /> ## Accessors ### activeManager\_ `Protected` `get` **activeManager_**(): `EntityManager` #### Returns `EntityManager` ___ ### eventBusModuleService\_ `Protected` `get` **eventBusModuleService_**(): [`IEventBusModuleService`](../interfaces/IEventBusModuleService.mdx) #### Returns [`IEventBusModuleService`](../interfaces/IEventBusModuleService.mdx) ## Methods ### atomicPhase\_ `Protected` **atomicPhase_**<`TResult`, `TError`\>(`work`, `isolationOrErrorHandler?`, `maybeErrorHandlerOrDontFail?`): `Promise`<`TResult`\> Wraps some work within a transactional block. If the service already has a transaction manager attached this will be reused, otherwise a new transaction manager is created. #### Parameters `Promise`<`TResult`\\>", "description": "the transactional work to be done", "optional": false, "defaultValue": "", "expandable": false, "children": [] }, { "name": "isolationOrErrorHandler", "type": "`IsolationLevel` \\| (`error`: `TError`) => `Promise`<`void` \\| `TResult`\\>", "description": "the isolation level to be used for the work.", "optional": true, "defaultValue": "", "expandable": false, "children": [] }, { "name": "maybeErrorHandlerOrDontFail", "type": "(`error`: `TError`) => `Promise`<`void` \\| `TResult`\\>", "description": "Potential error handler", "optional": true, "defaultValue": "", "expandable": false, "children": [] } ]} /> #### Returns `Promise`<`TResult`\> ", "optional": false, "defaultValue": "", "description": "the result of the transactional work", "expandable": false, "children": [] } ]} /> ___ ### emit **emit**<`T`\>(`data`): `Promise`<`void` \| [`StagedJob`](StagedJob.mdx)[]\> Calls all subscribers when an event occurs. #### Parameters []", "description": "The data to use to process the events", "optional": false, "defaultValue": "", "expandable": false, "children": [] } ]} /> #### Returns `Promise`<`void` \| [`StagedJob`](StagedJob.mdx)[]\> ", "optional": false, "defaultValue": "", "description": "the jobs from our queue", "expandable": false, "children": [] } ]} /> **emit**<`T`\>(`eventName`, `data`, `options?`): `Promise`<`void` \| [`StagedJob`](StagedJob.mdx)\> Calls all subscribers when an event occurs. #### Parameters ", "description": "options to add the job with", "optional": true, "defaultValue": "", "expandable": false, "children": [] } ]} /> #### Returns `Promise`<`void` \| [`StagedJob`](StagedJob.mdx)\> ", "optional": false, "defaultValue": "", "description": "the job from our queue", "expandable": false, "children": [] } ]} /> ___ ### enqueuer\_ **enqueuer_**(): `Promise`<`void`\> #### Returns `Promise`<`void`\> ", "optional": false, "defaultValue": "", "description": "", "expandable": false, "children": [] } ]} /> ___ ### listJobs `Protected` **listJobs**(`listConfig`): `Promise`<`never`[] \| [`StagedJob`](StagedJob.mdx)[]\> #### Parameters ", "description": "", "optional": false, "defaultValue": "", "expandable": false, "children": [] } ]} /> #### Returns `Promise`<`never`[] \| [`StagedJob`](StagedJob.mdx)[]\> ", "optional": false, "defaultValue": "", "description": "", "expandable": false, "children": [] } ]} /> ___ ### shouldRetryTransaction\_ `Protected` **shouldRetryTransaction_**(`err`): `boolean` #### Parameters \\| { `code`: `string` }", "description": "", "optional": false, "defaultValue": "", "expandable": false, "children": [] } ]} /> #### Returns `boolean` ___ ### startEnqueuer **startEnqueuer**(): `void` #### Returns `void` ___ ### stopEnqueuer **stopEnqueuer**(): `Promise`<`void`\> #### Returns `Promise`<`void`\> ", "optional": false, "defaultValue": "", "description": "", "expandable": false, "children": [] } ]} /> ___ ### subscribe **subscribe**(`event`, `subscriber`, `context?`): [`EventBusService`](EventBusService.mdx) Adds a function to a list of event subscribers. #### Parameters ", "description": "the function to be called when a certain event happens. Subscribers must return a Promise.", "optional": false, "defaultValue": "", "expandable": false, "children": [] }, { "name": "context", "type": "[`SubscriberContext`](../types/SubscriberContext.mdx)", "description": "subscriber context", "optional": true, "defaultValue": "", "expandable": false, "children": [] } ]} /> #### Returns [`EventBusService`](EventBusService.mdx) ___ ### unsubscribe **unsubscribe**(`event`, `subscriber`, `context`): [`EventBusService`](EventBusService.mdx) Removes function from the list of event subscribers. #### Parameters ", "description": "the function to be removed", "optional": false, "defaultValue": "", "expandable": false, "children": [] }, { "name": "context", "type": "[`SubscriberContext`](../types/SubscriberContext.mdx)", "description": "subscriber context", "optional": false, "defaultValue": "", "expandable": false, "children": [] } ]} /> #### Returns [`EventBusService`](EventBusService.mdx) ___ ### withTransaction **withTransaction**(`transactionManager?`): [`EventBusService`](EventBusService.mdx) #### Parameters #### Returns [`EventBusService`](EventBusService.mdx)