UNPKG

worker-tls

Version:

worker-tls 提供了 动态Worker 功能 和 其它一些 Worker 场景下有用的工具集;让开发者可以像调用对象方法一样动态地调用Worker中的方法,也可以随时地往 Worker 中动态地添加函数 等等。

89 lines (66 loc) 2.42 kB
[API接口文档]: ./api/index.md [动态Worker的设计与机制]: ./动态Worker的设计与机制.md > 本文只简单教下 动态 Worker 使用方法,如果想深入原理,请看[动态Worker的设计与机制][],其它的工具请看 [API接口文档][]; **目录:** <!-- @import "[TOC]" {cmd="toc" depthFrom=1 depthTo=6 orderedList=true} --> <!-- code_chunk_output --> 1. [创建动态Worker](#创建动态worker) 2. [调用命令](#调用命令) 3. [添加新的命令](#添加新的命令) 4. [删除命令](#删除命令) 5. [注意事项](#注意事项) <!-- /code_chunk_output --> --------- # 创建动态Worker 1. 定义需要在 Worker 中运行的命令:所谓的命令 可以是函数,也可以是一个数据对象。 ```ts // 加 function add(a:number,b:number){ return a + b; } // 减,匿名函数 const subtract = function(a:number,b:number){ return a - b; } ``` 2. 创建动态Worker ```ts const dWorker = createDynamicWorker({ named:[ add, /** * 匿名函数 必须要指定命令的名字 */ { name: "subtract", fun:subtract } ] }); ``` # 调用命令 ```ts const addRes = await dWorker.add(3,2); // 5 const subRes = await dWorker.subtract(3,2); // 1 ``` # 添加新的命令 ```ts dWorker.multiply = function multiply(a:number,b:number){ return a * b; }; ``` 调用新添加的命令 ```ts const multRes = await dWorker.multiply(3,2); // 6 ``` # 删除命令 ```ts // 删除 add 命令 delete dWorker.add ``` # 注意事项 - 如果函数引用了外部的变量,则 该函数 及其 引用到的外部变量 都需要添加到 Worker 中; - 在使用 `createDynamicWorker()` 创建 动态Worker 时,会自给 `named` 选项中的命令在 动态Worker对象上 生成相应的快捷命令; - 在第一次向动态Worker的代理对象上访问某个命令时,如果该动态Worker对象上不存在该命令的快捷命令,则会在该动态Worker对象上自动添加对应的快捷命令; - 快捷命令的返回值总是异步的。 - 命令的返回结果可以是异步的(如:`Promise`),也可以是流(如:`ReadableStream`),也可以是 `Promise` 和 流的相互组合,如:异步的流 `Promise<ReadableStream>`,数据块是 `Promise<any>`的流 `ReadableStream<Promise<any>>`,或 数据块是异步的异步流 `Promise<ReadableStream<Promise<any>>>`