TaskProcessor

new Cesium.TaskProcessor(workerPath, maximumActiveTasks)

围绕 Web Worker 的封装,允许为给定 Worker 调度任务, 并通过 Promise 异步返回结果。 在该任务被调度之前,Worker 不会被创建。
Name Type Default Description
workerPath string 指向 Worker 的 Url。可以是绝对路径,也可以是相对于 Cesium Workers 文件夹的相对路径。
maximumActiveTasks number Number.POSITIVE_INFINITY optional 活动任务的最大数量。一旦超过该数量, scheduleTask 将不再排队任何任务,以便 在后续帧中重新调度工作。

Methods

销毁此对象。这将立即终止 Worker。

对象一旦被销毁就不应再使用;调用除 isDestroyed 以外的任何函数都将导致 DeveloperError 异常。

initWebAssemblyModule(webAssemblyOptions)Promise.<*>

向 Web Worker 发送一条消息,其中包含用于异步初始化加载 并编译 WebAssembly 模块的配置,以及一个可选的 在 Web Assembly 不受支持时使用的回退 JavaScript 模块。
Name Type Description
webAssemblyOptions object optional An object with the following properties:
Name Type Description
modulePath string optional WebAssembly JavaScript 包装模块的路径。
wasmBinaryFile string optional WebAssembly 二进制文件的路径。
fallbackModulePath string optional 在 WebAssembly 不受支持时使用的回退 JavaScript 模块的路径。
Returns:
当 Web Worker 已加载并编译完 WebAssembly 模块且准备好处理任务时,解析为该结果的 Promise。
Throws:
  • RuntimeError :此浏览器不支持 Web Assembly,且没有提供备份模块。

isDestroyed()boolean

如果此对象已被销毁则返回 true,否则返回 false。

如果此对象已被销毁,则不应再使用;调用除 isDestroyed 以外的任何函数都将导致 DeveloperError 异常。
Returns:
如果此对象已被销毁则为 True,否则为 false。
See:

scheduleTask(parameters, transferableObjects)Promise.<object>|undefined

调度一个由 Web Worker 异步处理的任务。如果当前活动任务数 超过了构造函数设置的最大值,将立即返回 undefined。 否则,返回一个 Promise,该 Promise 将在 Worker 完成并回传结果时解析为该结果。
Name Type Description
parameters object 任何将被发送给 Worker 的输入数据。
transferableObjects Array.<object> optional 包含于参数中的对象数组,这些对象应被 转移到 Worker,而不是被复制。
Returns:
要么是一个在结果可用时解析为该结果的 Promise,要么为 undefined (如果活动任务过多的话)。
Example:
const taskProcessor = new Cesium.TaskProcessor('myWorkerPath');
const promise = taskProcessor.scheduleTask({
    someParameter : true,
    another : 'hello'
});
if (!Cesium.defined(promise)) {
    // too many active tasks - try again later
} else {
    promise.then(function(result) {
        // use the result of the task
    });
}
需要帮助?获取答案的最快方式是在 Cesium 论坛 上向社区和团队提问。