- protected internalExecute (
- worker: WorkerWithMessageChannel,
- id: number
- ): Promise<Response> {
- return new Promise((resolve, reject) => {
- const listener: (message: MessageValue<Response>) => void = message => {
- if (message.id === id) {
- worker.port2?.removeListener('message', listener)
- const previousWorkerIndex = this.tasks.get(worker)
- if (previousWorkerIndex !== undefined) {
- this.tasks.set(worker, previousWorkerIndex + 1)
- } else {
- throw Error('Worker could not be found in tasks map')
- }
- if (message.error) reject(message.error)
- else resolve(message.data as Response)
- }
- }
- worker.port2?.on('message', listener)
- })
+ /** @inheritDoc */
+ protected sendToWorker (
+ worker: ThreadWorkerWithMessageChannel,
+ message: MessageValue<Data>
+ ): void {
+ worker.postMessage(message)