创建一个在 Worker 中运行的函数
| 必填 | 参数名 | 说明 | 类型 | 默认值 |
|---|---|---|---|---|
| * | func | 要在 Worker 中运行的函数 | (...args:any[])=>any | - |
| importScripts | Worker 运行时需要加载的脚本 | string[] | [] | |
| options | 选项 | object | {} | |
| options.reuse | 是否复用 Worker | boolean | true | |
| options.needPost | 是否需要将所有参数打包为数组 | boolean | false |
needPost 为 true 时, func 的第一个参数会被替换为 postMessage, 用户自己的参数从形参列表第二项开始
postMessage
运行中返回中间结果
参数
| 必填 | 参数名 | 说明 | 类型 | 默认值 |
|---|---|---|---|---|
| * | data | 要发送的数据 | any | - |
返回值
无
| 类型 | 说明 |
|---|---|
| IWorkerFuncs | 包含了 run dispose on remove clearOn onOnce 方法的对象 |
运行函数
参数
| 必填 | 参数名 | 说明 | 类型 | 默认值 |
|---|---|---|---|---|
| * | ...args | 和传入 func 相同的参数列表 | any[] | - |
返回值
| 类型 | 说明 |
|---|---|
| Promise | func 的返回结果在 Promise 的 then 中接收 |
销毁 Worker
参数
无
返回值
无
下面的方法只有在 needPost 为 true 时才有效
监听 postMessage 发送的消息
参数
| 必填 | 参数名 | 说明 | 类型 | 默认值 |
|---|---|---|---|---|
| * | callback | 回调函数 | (data: any) => void | - |
返回值
无
移除监听
参数
| 必填 | 参数名 | 说明 | 类型 | 默认值 |
|---|---|---|---|---|
| * | callback | 回调函数 | TAnyFunc | - |
返回值
无
清除所有监听
参数
无
返回值
无
只监听一次
参数
| 必填 | 参数名 | 说明 | 类型 | 默认值 |
|---|---|---|---|---|
| * | callback | 回调函数 | (data: any) => void | - |
返回值
无