web-worker-func
TypeScript icon, indicating that this package has built-in type declarations

1.1.0 • Public • Published

web-worker-func


  1. 更简单的webWorker使用方法,无需添加额外的worker.js文件
  2. source code

Install

npm install web-worker-func

or

yarn add web-worker-func

Usage

import webWorkerBuilder from 'web-worker-func'

const numbers = [...Array(5000000)].map(e => ~~(Math.random() * 1000000));
const sortFunc = nums => nums.sort();

const webWorkerSortFunc = webWorkerFuncBuilder(sortFunc)

webWorkerSortFunc(numbers)
  .then((res) => {
    // 返回在webWoker中计算好的结果
    console.log(res)
  })

支持 umd(dist/index.umd.js)、 esm(dist/index.esm.js) 、 cjs(dist/index.js) 各种模式引入

eg: 可直接在html中引入 <script src="../dist/index.umd.js" type="text/javascript"></script> 然后使用`window.webWorkerFuncBuilder

API

type Func = (...args: any) => any;

type WebWorkerBuilder = <T extends Func>(fn: T, options?: Options) => (...args: Parameters<T>) => Promise<ReturnType<T>>;

type Options = {
  timeout?: number,
  importScripts?: string[],
  depsFunc?: Func[],
  transferable?: boolean
};
  • options
    • timeout 过期时间设置
    • importScripts worker文件引入的依赖
    • depsFunc fn函数运算时依赖的函数
    • transferable (可转让对象)是否使用高性能的通过转让所有权的方式来传递数据, 具体可参考MDN

thanks

Package Sidebar

Install

npm i web-worker-func

Weekly Downloads

3

Version

1.1.0

License

ISC

Unpacked Size

9.86 kB

Total Files

6

Last publish

Collaborators

  • sanpiao