TaskProcessor

new Cesium.TaskProcessor(workerPath, maximumActiveTasks)

一个封装了 Web Worker 的类,允许为给定的工作线程调度任务, 通过承诺异步返回结果。 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 模块,以及可选的 备用 JavaScript 模块,用于在不支持 WebAssembly 的情况下使用。
Name Type Description
webAssemblyOptions object optional 一个具有以下属性的对象:
Name Type Description
modulePath string optional WebAssembly JavaScript 包装模块的路径。
wasmBinaryFile string optional WebAssembly 二进制文件的路径。
fallbackModulePath string optional 如果不支持 WebAssembly,备用 JavaScript 模块的路径。
Returns:
一个 Promise,当 Web Worker 加载并编译 WebAssembly 模块并准备处理任务时解析为结果。
Throws:
  • RuntimeError : 此浏览器不支持 WebAssembly,并且未提供备份模块。

isDestroyed()boolean

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

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

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

调度一个任务,通过 Web Worker 异步处理。如果当前活动的任务数量超过构造函数设置的最大值,将立即返回 undefined。 否则,返回一个 Promise,该 Promise 在完成时将解析为工作线程返回的结果。
Name Type Description
parameters object 将发送到工作线程的输入数据。
transferableObjects Array.<Object> optional 包含在参数中的对象数组,这些对象应该转移到工作线程,而不是复制。
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 Forum.