---
title: "Dispatcher | JavaScript maps SDK"
description: "Documentation for MapTiler SDK"
---

> For AI agents: a documentation index is available at [/llms.txt](https://docs.maptiler.com/llms.txt). Markdown versions of all pages are available by appending .md to any URL.

# Class Dispatcher

Responsible for sending messages from a [Source](https://docs.maptiler.com/sdk-js/api-reference/interfaces/Source/) to an associated worker source (usually with the same name).

##### Index

### Constructors[](#constructors)

[constructor](#constructor)

### Properties[](#properties)

[actors](#actors) [currentActor](#currentactor) [id](#id) [workerPool](#workerpool)

### Methods[](#methods)

[broadcast](#broadcast) [getActor](#getactor) [registerMessageHandler](#registermessagehandler) [remove](#remove) [unregisterMessageHandler](#unregistermessagehandler)

## Constructors[](#constructors-1)

### constructor[](#constructor)

-   new Dispatcher(workerPool: [WorkerPool](https://docs.maptiler.com/sdk-js/api-reference/classes/Externals.WorkerPool/), mapId: string | number): Dispatcher[](#constructordispatcher)
    
    #### Parameters
    
    -   workerPool: [WorkerPool](https://docs.maptiler.com/sdk-js/api-reference/classes/Externals.WorkerPool/)
    -   mapId: string | number
    
    #### Returns Dispatcher
    

## Properties[](#properties-1)

### actors[](#actors)

actors: [Actor](https://docs.maptiler.com/sdk-js/api-reference/classes/Actor/)\[\]

### currentActor[](#currentactor)

currentActor: number

### id[](#id)

id: string | number

### workerPool[](#workerpool)

workerPool: [WorkerPool](https://docs.maptiler.com/sdk-js/api-reference/classes/Externals.WorkerPool/)

## Methods[](#methods-1)

### broadcast[](#broadcast)

-   broadcast<[T](#broadcastt) extends [MessageType](https://docs.maptiler.com/sdk-js/api-reference/enums/MessageType/)\>(  
        type: [T](#broadcastt),  
        data: [RequestResponseMessageMap](https://docs.maptiler.com/sdk-js/api-reference/types/RequestResponseMessageMap/)\[[T](#broadcastt)\]\[0\],  
    ): Promise<[RequestResponseMessageMap](https://docs.maptiler.com/sdk-js/api-reference/types/RequestResponseMessageMap/)\[[T](#broadcastt)\]\[1\]\[\]\>[](#broadcast-1)
    
    Broadcast a message to all Workers.
    
    #### Type Parameters
    
    -   T extends [MessageType](https://docs.maptiler.com/sdk-js/api-reference/enums/MessageType/)
    
    #### Parameters
    
    -   type: [T](#broadcastt)
    -   data: [RequestResponseMessageMap](https://docs.maptiler.com/sdk-js/api-reference/types/RequestResponseMessageMap/)\[[T](#broadcastt)\]\[0\]
    
    #### Returns Promise<[RequestResponseMessageMap](https://docs.maptiler.com/sdk-js/api-reference/types/RequestResponseMessageMap/)\[[T](#broadcastt)\]\[1\]\[\]\>
    

### getActor[](#getactor)

-   getActor(): [Actor](https://docs.maptiler.com/sdk-js/api-reference/classes/Actor/)[](#getactor-1)
    
    Acquires an actor to dispatch messages to. The actors are distributed in round-robin fashion.
    
    #### Returns [Actor](https://docs.maptiler.com/sdk-js/api-reference/classes/Actor/)
    
    An actor object backed by a web worker for processing messages.
    

### registerMessageHandler[](#registermessagehandler)

-   registerMessageHandler<[T](#registermessagehandlert) extends [MessageType](https://docs.maptiler.com/sdk-js/api-reference/enums/MessageType/)\>(  
        type: [T](#registermessagehandlert),  
        handler: [MessageHandler](https://docs.maptiler.com/sdk-js/api-reference/types/Externals.MessageHandler/)<[T](#registermessagehandlert)\>,  
    ): void[](#registermessagehandler-1)
    
    #### Type Parameters
    
    -   T extends [MessageType](https://docs.maptiler.com/sdk-js/api-reference/enums/MessageType/)
    
    #### Parameters
    
    -   type: [T](#registermessagehandlert)
    -   handler: [MessageHandler](https://docs.maptiler.com/sdk-js/api-reference/types/Externals.MessageHandler/)<[T](#registermessagehandlert)\>
    
    #### Returns void
    

### remove[](#remove)

-   remove(mapRemoved?: boolean): void[](#remove-1)
    
    #### Parameters
    
    -   `Optional`mapRemoved: boolean
    
    #### Returns void
    

### unregisterMessageHandler[](#unregistermessagehandler)

-   unregisterMessageHandler<[T](#unregistermessagehandlert) extends [MessageType](https://docs.maptiler.com/sdk-js/api-reference/enums/MessageType/)\>(type: [T](#unregistermessagehandlert)): void[](#unregistermessagehandler-1)
    
    #### Type Parameters
    
    -   T extends [MessageType](https://docs.maptiler.com/sdk-js/api-reference/enums/MessageType/)
    
    #### Parameters
    
    -   type: [T](#unregistermessagehandlert)
    
    #### Returns void
