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');