Skip to main content

Methods

Method: run(task[, options])

Schedules a task to be run on a Worker thread.

  • task: Any value. This will be passed to the function that is exported from filename.
  • options:
    • transferList: An optional lists of objects that is passed to [postMessage()] when posting task to the Worker, which are transferred rather than cloned.
    • filename: Optionally overrides the filename option passed to the constructor for this task. If no filename was specified to the constructor, this is mandatory.
    • name: Optionally overrides the exported worker function used for the task.
    • abortSignal: An AbortSignal instance. If passed, this can be used to cancel a task. If the task is already running, the corresponding Worker thread will be stopped. (More generally, any EventEmitter or EventTarget that emits 'abort' events can be passed here.) Abortable tasks cannot share threads regardless of the concurrentTasksPerWorker options.

This returns a Promise for the return value of the (async) function call made to the function exported from filename. If the (async) function throws an error, the returned Promise will be rejected with that error. If the task is aborted, the returned Promise is rejected with an error as well.

Method: runTask(task[, transferList][, filename][, abortSignal])

Deprecated -- Use run(task, options) instead.

Schedules a task to be run on a Worker thread.

  • task: Any value. This will be passed to the function that is exported from filename.
  • transferList: An optional lists of objects that is passed to [postMessage()] when posting task to the Worker, which are transferred rather than cloned.
  • filename: Optionally overrides the filename option passed to the constructor for this task. If no filename was specified to the constructor, this is mandatory.
  • signal: An [AbortSignal][] instance. If passed, this can be used to cancel a task. If the task is already running, the corresponding Worker thread will be stopped. (More generally, any EventEmitter or EventTarget that emits 'abort' events can be passed here.) Abortable tasks cannot share threads regardless of the concurrentTasksPerWorker options.

This returns a Promise for the return value of the (async) function call made to the function exported from filename. If the (async) function throws an error, the returned Promise will be rejected with that error. If the task is aborted, the returned Promise is rejected with an error as well.

Method: destroy()

Stops all Workers and rejects all Promises for pending tasks.

This returns a Promise that is fulfilled once all threads have stopped.

Method: close([options])

  • options:
    • force: A boolean value that indicates whether to abort all tasks that are enqueued but not started yet. The default is false.

It stops all Workers gracefully.

This returns a Promise that is fulfilled once all tasks that were started have completed and all threads have stopped.

This method is similar to destroy(), but with the difference that close() will wait for the worker tasks to finish, while destroy() will abort them immediately.