Skip to content
On this page

super-tools-lib - v1.74.0 / Modules / class / RunWorker

Class: RunWorker

class.RunWorker

多线程

Since

1.62.0

Example

ts
import { RunWorker } from 'super-tools-lib'

const wok = new RunWorker()

const f = () => {
 self.onmessage = (evt) => {
  // 执行耗时运算...
   self.postMessage('运算完成')
 }
}

// 创建一个count子线程
wok.createWorker('count', f)

// 监听count线程返回的运算结果
wok.on('count', ‘message’, (data) => {
 console.log(data)
})

// 向count线程传递数据,count线程计算完成后会触发message事件
wok.postMessage('count',[1,2,3,4...])

// 关闭count线程
wok.close('count')

Table of contents

Constructors

Properties

Methods

Constructors

constructor

new RunWorker()

Properties

_eventPool

Private _eventPool: EventObserver


_workers

Private _workers: Map<string, Worker>

Methods

close

close(name): void

关闭worker线程

Parameters

NameTypeDescription
namestring子线程名称

Returns

void


createWorker

createWorker(name, f): void

创建Worker

Parameters

NameTypeDescription
namestring子线程名称
fany子线程函数

Returns

void


on

on(name, type, cb): void

事件监听

Parameters

NameTypeDescription
namestring子线程名称
type"error" | "message" | "messageerror"主线程监听子线程返回消息
cb(...rest: any[]) => void回调函数

Returns

void


postMessage

postMessage(name, params, options?): void

向worker线程传入数据

Parameters

NameTypeDescription
namestring子线程名称
paramsany传递数据
options?StructuredSerializeOptions

Returns

void