importScriptInWorkers()
importScriptInWorkers(
workerUrl:string):Promise<void[]>
定义于: src/index.ts:174
允许在worker线程中加载JavaScript代码。注意,由于这使用了一些非常内部的类和流程,它被视为实验性的,可能随时会发生变化。
它可以用于以下示例:
- 在worker线程中使用
self.addProtocol- 注意,你可能还需要在主线程上注册协议。 - 使用
self.registerWorkerSource(workerSource: WorkerSource)注册worker源,通常应该与addSourceType一起使用。 - 使用
self.actor.registerMessageHandler来覆盖一些内部worker操作。
参数
| 参数 | 类型 | 描述 |
|---|---|---|
| workerUrl | string | worker的URL,例如要在worker中加载的JavaScript文件的URL |
返回值
Promise<void[]>
示例
// 下面是一个将js文件发送到worker以在那里加载方法的示例
// 注意,你需要在worker中调用全局函数`addProtocol`来在那里注册协议。
// add-protocol-worker.js
async function loadFn(params, abortController) {
const t = await fetch(`https://${params.url.split("://")[1]}`);
if (t.status == 200) {
const buffer = await t.arrayBuffer();
return {data: buffer}
} else {
throw new Error(`Tile fetch error: ${t.statusText}`);
}
}
self.addProtocol('custom', loadFn);
// main.js
importScriptInWorkers('add-protocol-worker.js');