WebWorkerService

Manages Web Worker lifecycle — creation, typed message passing, status tracking, and cleanup — with an Observable-based API.

TypeScriptexample.ts
import { WebWorkerService } from '@angular-helpers/browser-web-apis'

# Methods

MethodSignatureReturnsDescription
createWorkercreateWorker(name: string, scriptUrl: string): Observable<WorkerStatus>Observable<WorkerStatus>Create a worker. Idempotent: calling twice with the same name returns the existing entry without recreating the worker. Returns an `Observable` for backward compatibility. Prefer for new code.
createWorkerSignalcreateWorkerSignal(name: string, scriptUrl: string): Signal<WorkerStatus>Signal<WorkerStatus>Create a worker (signal-first). Returns the status signal; status is also accessible later via .
terminateWorkerterminateWorker(name: string): voidvoidPublic method terminateWorker.
terminateAllWorkersterminateAllWorkers(): voidvoidPublic method terminateAllWorkers.
postMessagepostMessage(workerName: string, task: WorkerTask): voidvoidSend a fire-and-forget message. Use when you need a reply.
requestrequest(workerName: string, type: string, data: TReq, opts?: WorkerRequestOptions): Promise<TRes>Promise<TRes>Send a message and await a correlated response. The worker MUST send back a message containing `correlationId` matching the request id. ```ts const result = await ws.request<{ ok: boolean }>('worker', 'compute', { n: 1 }); ```
getMessagesgetMessages(workerName: string): Observable<WorkerMessage<T>>Observable<WorkerMessage<T>>Public method getMessages.
getMessagesByTypegetMessagesByType(workerName: string, type: string): Observable<WorkerMessage<T>>Observable<WorkerMessage<T>>Public method getMessagesByType.
getStatusgetStatus(workerName: string): Observable<WorkerStatus>Observable<WorkerStatus>Public method getStatus.
getStatusSignalgetStatusSignal(workerName: string): Signal<WorkerStatus>Signal<WorkerStatus>Public method getStatusSignal.
getCurrentStatusgetCurrentStatus(workerName: string): WorkerStatus | undefinedWorkerStatus | undefinedPublic method getCurrentStatus.
getAllStatusesgetAllStatuses(): Map<string, WorkerStatus>Map<string, WorkerStatus>Public method getAllStatuses.
isWorkerRunningisWorkerRunning(workerName: string): booleanbooleanPublic method isWorkerRunning.
getNativeWorkergetNativeWorker(name: string): Worker | undefinedWorker | undefinedPublic method getNativeWorker.
getAllWorkersgetAllWorkers(): Map<string, Worker>Map<string, Worker>Public method getAllWorkers.
LCP N/A
CLS N/A
INP N/A