---
title: "Actor | 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 Actor

An implementation of the [Actor design pattern](https://en.wikipedia.org/wiki/Actor_model) that maintains the relationship between asynchronous tasks and the objects that spin them off - in this case, tasks like parsing parts of styles, owned by the styles

#### Implements

-   [IActor](https://docs.maptiler.com/sdk-js/api-reference/interfaces/IActor/)

##### Index

### Constructors[](#constructors)

[constructor](#constructor)

### Properties[](#properties)

[abortControllers](#abortcontrollers) [globalScope](#globalscope) [invoker](#invoker) [mapId](#mapid) [messageHandlers](#messagehandlers) [name](#name) [resolveRejects](#resolverejects) [subscription](#subscription) [target](#target) [taskQueue](#taskqueue) [tasks](#tasks)

### Methods[](#methods)

[completeTask](#completetask) [process](#process) [processTask](#processtask) [receive](#receive) [registerMessageHandler](#registermessagehandler) [remove](#remove) [sendAsync](#sendasync) [unregisterMessageHandler](#unregistermessagehandler)

## Constructors[](#constructors-1)

### constructor[](#constructor)

-   new Actor(target: [ActorTarget](https://docs.maptiler.com/sdk-js/api-reference/interfaces/Externals.ActorTarget/), mapId?: string | number): Actor[](#constructoractor)
    
    #### Parameters
    
    -   target: [ActorTarget](https://docs.maptiler.com/sdk-js/api-reference/interfaces/Externals.ActorTarget/)
        
        The target
        
    -   `Optional`mapId: string | number
        
        A unique identifier for the Map instance using this Actor.
        
    
    #### Returns Actor
    

## Properties[](#properties-1)

### abortControllers[](#abortcontrollers)

abortControllers: { \[x: string | number\]: AbortController }

### globalScope[](#globalscope)

globalScope: [ActorTarget](https://docs.maptiler.com/sdk-js/api-reference/interfaces/Externals.ActorTarget/)

### invoker[](#invoker)

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

### mapId[](#mapid)

mapId: string | number | null

### messageHandlers[](#messagehandlers)

messageHandlers: {  
    AT?: [MessageHandler](https://docs.maptiler.com/sdk-js/api-reference/types/Externals.MessageHandler/)<[abortTile](https://docs.maptiler.com/sdk-js/api-reference/enums/MessageType/#aborttile)\>;  
    GCC?: [MessageHandler](https://docs.maptiler.com/sdk-js/api-reference/types/Externals.MessageHandler/)<[getClusterChildren](https://docs.maptiler.com/sdk-js/api-reference/enums/MessageType/#getclusterchildren)\>;  
    GCEZ?: [MessageHandler](https://docs.maptiler.com/sdk-js/api-reference/types/Externals.MessageHandler/)<[getClusterExpansionZoom](https://docs.maptiler.com/sdk-js/api-reference/enums/MessageType/#getclusterexpansionzoom)\>;  
    GCL?: [MessageHandler](https://docs.maptiler.com/sdk-js/api-reference/types/Externals.MessageHandler/)<[getClusterLeaves](https://docs.maptiler.com/sdk-js/api-reference/enums/MessageType/#getclusterleaves)\>;  
    GDA?: [MessageHandler](https://docs.maptiler.com/sdk-js/api-reference/types/Externals.MessageHandler/)<[getDashes](https://docs.maptiler.com/sdk-js/api-reference/enums/MessageType/#getdashes)\>;  
    GG?: [MessageHandler](https://docs.maptiler.com/sdk-js/api-reference/types/Externals.MessageHandler/)<[getGlyphs](https://docs.maptiler.com/sdk-js/api-reference/enums/MessageType/#getglyphs)\>;  
    GI?: [MessageHandler](https://docs.maptiler.com/sdk-js/api-reference/types/Externals.MessageHandler/)<[getImages](https://docs.maptiler.com/sdk-js/api-reference/enums/MessageType/#getimages)\>;  
    GR?: [MessageHandler](https://docs.maptiler.com/sdk-js/api-reference/types/Externals.MessageHandler/)<[getResource](https://docs.maptiler.com/sdk-js/api-reference/enums/MessageType/#getresource)\>;  
    IS?: [MessageHandler](https://docs.maptiler.com/sdk-js/api-reference/types/Externals.MessageHandler/)<[importScript](https://docs.maptiler.com/sdk-js/api-reference/enums/MessageType/#importscript)\>;  
    LD?: [MessageHandler](https://docs.maptiler.com/sdk-js/api-reference/types/Externals.MessageHandler/)<[loadData](https://docs.maptiler.com/sdk-js/api-reference/enums/MessageType/#loaddata)\>;  
    LDT?: [MessageHandler](https://docs.maptiler.com/sdk-js/api-reference/types/Externals.MessageHandler/)<[loadDEMTile](https://docs.maptiler.com/sdk-js/api-reference/enums/MessageType/#loaddemtile)\>;  
    LT?: [MessageHandler](https://docs.maptiler.com/sdk-js/api-reference/types/Externals.MessageHandler/)<[loadTile](https://docs.maptiler.com/sdk-js/api-reference/enums/MessageType/#loadtile)\>;  
    RDT?: [MessageHandler](https://docs.maptiler.com/sdk-js/api-reference/types/Externals.MessageHandler/)<[removeDEMTile](https://docs.maptiler.com/sdk-js/api-reference/enums/MessageType/#removedemtile)\>;  
    RM?: [MessageHandler](https://docs.maptiler.com/sdk-js/api-reference/types/Externals.MessageHandler/)<[removeMap](https://docs.maptiler.com/sdk-js/api-reference/enums/MessageType/#removemap)\>;  
    RMT?: [MessageHandler](https://docs.maptiler.com/sdk-js/api-reference/types/Externals.MessageHandler/)<[removeTile](https://docs.maptiler.com/sdk-js/api-reference/enums/MessageType/#removetile)\>;  
    RS?: [MessageHandler](https://docs.maptiler.com/sdk-js/api-reference/types/Externals.MessageHandler/)<[removeSource](https://docs.maptiler.com/sdk-js/api-reference/enums/MessageType/#removesource)\>;  
    RT?: [MessageHandler](https://docs.maptiler.com/sdk-js/api-reference/types/Externals.MessageHandler/)<[reloadTile](https://docs.maptiler.com/sdk-js/api-reference/enums/MessageType/#reloadtile)\>;  
    SI?: [MessageHandler](https://docs.maptiler.com/sdk-js/api-reference/types/Externals.MessageHandler/)<[setImages](https://docs.maptiler.com/sdk-js/api-reference/enums/MessageType/#setimages)\>;  
    SL?: [MessageHandler](https://docs.maptiler.com/sdk-js/api-reference/types/Externals.MessageHandler/)<[setLayers](https://docs.maptiler.com/sdk-js/api-reference/enums/MessageType/#setlayers)\>;  
    SR?: [MessageHandler](https://docs.maptiler.com/sdk-js/api-reference/types/Externals.MessageHandler/)<[setReferrer](https://docs.maptiler.com/sdk-js/api-reference/enums/MessageType/#setreferrer)\>;  
    SRPS?: [MessageHandler](https://docs.maptiler.com/sdk-js/api-reference/types/Externals.MessageHandler/)<[syncRTLPluginState](https://docs.maptiler.com/sdk-js/api-reference/enums/MessageType/#syncrtlpluginstate)\>;  
    UGS?: [MessageHandler](https://docs.maptiler.com/sdk-js/api-reference/types/Externals.MessageHandler/)<[updateGlobalState](https://docs.maptiler.com/sdk-js/api-reference/enums/MessageType/#updateglobalstate)\>;  
    UL?: [MessageHandler](https://docs.maptiler.com/sdk-js/api-reference/types/Externals.MessageHandler/)<[updateLayers](https://docs.maptiler.com/sdk-js/api-reference/enums/MessageType/#updatelayers)\>;  
}

### name[](#name)

name: string

### resolveRejects[](#resolverejects)

resolveRejects: { \[x: string\]: [ResolveReject](https://docs.maptiler.com/sdk-js/api-reference/types/Externals.ResolveReject/) }

### subscription[](#subscription)

subscription: [Subscription](https://docs.maptiler.com/sdk-js/api-reference/interfaces/Subscription/)

### target[](#target)

target: [ActorTarget](https://docs.maptiler.com/sdk-js/api-reference/interfaces/Externals.ActorTarget/)

### taskQueue[](#taskqueue)

taskQueue: string\[\]

### tasks[](#tasks)

tasks: { \[x: string\]: [MessageData](https://docs.maptiler.com/sdk-js/api-reference/types/Externals.MessageData/) }

## Methods[](#methods-1)

### completeTask[](#completetask)

-   completeTask(  
        id: string,  
        err: Error,  
        data?:  
            | number  
            | void  
            | [Feature](https://docs.maptiler.com/sdk-js/api-reference/interfaces/Externals.Feature/)<[Geometry](https://docs.maptiler.com/sdk-js/api-reference/types/Externals.Geometry/), [GeoJsonProperties](https://docs.maptiler.com/sdk-js/api-reference/types/Externals.GeoJsonProperties/)\>\[\]  
            | [DEMData](https://docs.maptiler.com/sdk-js/api-reference/classes/Externals.DEMData/)  
            | [WorkerTileResult](https://docs.maptiler.com/sdk-js/api-reference/types/WorkerTileResult/)  
            | [GetImagesResponse](https://docs.maptiler.com/sdk-js/api-reference/types/Externals.GetImagesResponse/)  
            | [GeoJSONWorkerSourceLoadDataResult](https://docs.maptiler.com/sdk-js/api-reference/types/Externals.GeoJSONWorkerSourceLoadDataResult/)  
            | [GetGlyphsResponse](https://docs.maptiler.com/sdk-js/api-reference/types/Externals.GetGlyphsResponse/)  
            | [PluginState](https://docs.maptiler.com/sdk-js/api-reference/types/Externals.PluginState/)  
            | [GetResourceResponse](https://docs.maptiler.com/sdk-js/api-reference/types/GetResourceResponse/)<any\>  
            | [GetDashesResponse](https://docs.maptiler.com/sdk-js/api-reference/types/Externals.GetDashesResponse/),  
    ): void[](#completetask-1)
    
    #### Parameters
    
    -   id: string
    -   err: Error
    -   `Optional`data:  
            | number  
            | void  
            | [Feature](https://docs.maptiler.com/sdk-js/api-reference/interfaces/Externals.Feature/)<[Geometry](https://docs.maptiler.com/sdk-js/api-reference/types/Externals.Geometry/), [GeoJsonProperties](https://docs.maptiler.com/sdk-js/api-reference/types/Externals.GeoJsonProperties/)\>\[\]  
            | [DEMData](https://docs.maptiler.com/sdk-js/api-reference/classes/Externals.DEMData/)  
            | [WorkerTileResult](https://docs.maptiler.com/sdk-js/api-reference/types/WorkerTileResult/)  
            | [GetImagesResponse](https://docs.maptiler.com/sdk-js/api-reference/types/Externals.GetImagesResponse/)  
            | [GeoJSONWorkerSourceLoadDataResult](https://docs.maptiler.com/sdk-js/api-reference/types/Externals.GeoJSONWorkerSourceLoadDataResult/)  
            | [GetGlyphsResponse](https://docs.maptiler.com/sdk-js/api-reference/types/Externals.GetGlyphsResponse/)  
            | [PluginState](https://docs.maptiler.com/sdk-js/api-reference/types/Externals.PluginState/)  
            | [GetResourceResponse](https://docs.maptiler.com/sdk-js/api-reference/types/GetResourceResponse/)<any\>  
            | [GetDashesResponse](https://docs.maptiler.com/sdk-js/api-reference/types/Externals.GetDashesResponse/)
    
    #### Returns void
    

### process[](#process)

-   process(): void[](#process-1)
    
    #### Returns void
    

### processTask[](#processtask)

-   processTask(id: string, task: [MessageData](https://docs.maptiler.com/sdk-js/api-reference/types/Externals.MessageData/)): Promise<void\>[](#processtask-1)
    
    #### Parameters
    
    -   id: string
    -   task: [MessageData](https://docs.maptiler.com/sdk-js/api-reference/types/Externals.MessageData/)
    
    #### Returns Promise<void\>
    

### receive[](#receive)

-   receive(message: { data: [MessageData](https://docs.maptiler.com/sdk-js/api-reference/types/Externals.MessageData/) }): void[](#receive-1)
    
    #### Parameters
    
    -   message: { data: [MessageData](https://docs.maptiler.com/sdk-js/api-reference/types/Externals.MessageData/) }
    
    #### Returns void
    

### 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(): void[](#remove-1)
    
    #### Returns void
    

### sendAsync[](#sendasync)

-   sendAsync<[T](#sendasynct) extends [MessageType](https://docs.maptiler.com/sdk-js/api-reference/enums/MessageType/)\>(  
        message: [ActorMessage](https://docs.maptiler.com/sdk-js/api-reference/types/ActorMessage/)<[T](#sendasynct)\>,  
        abortController?: AbortController,  
    ): Promise<[RequestResponseMessageMap](https://docs.maptiler.com/sdk-js/api-reference/types/RequestResponseMessageMap/)\[[T](#sendasynct)\]\[1\]\>[](#sendasync-1)
    
    Sends a message from a main-thread map to a Worker or from a Worker back to a main-thread map instance.
    
    #### Type Parameters
    
    -   T extends [MessageType](https://docs.maptiler.com/sdk-js/api-reference/enums/MessageType/)
    
    #### Parameters
    
    -   message: [ActorMessage](https://docs.maptiler.com/sdk-js/api-reference/types/ActorMessage/)<[T](#sendasynct)\>
        
        the message to send
        
    -   `Optional`abortController: AbortController
        
        an optional AbortController to abort the request
        
    
    #### Returns Promise<[RequestResponseMessageMap](https://docs.maptiler.com/sdk-js/api-reference/types/RequestResponseMessageMap/)\[[T](#sendasynct)\]\[1\]\>
    
    a promise that will be resolved with the response data
    
    Implementation of [IActor](https://docs.maptiler.com/sdk-js/api-reference/interfaces/IActor/).[sendAsync](https://docs.maptiler.com/sdk-js/api-reference/interfaces/IActor/#sendasync)
    

### 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
