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模块,以及一个可选的 如果WebAssembly不受支持时使用的备用JavaScript模块。
Name Type Description
webAssemblyOptions object optional 具有以下属性的对象:
Name Type Description
modulePath string optional WebAssembly JavaScript包装模块的路径。
wasmBinaryFile string optional WebAssembly二进制文件的路径。
fallbackModulePath string optional 如果WebAssembly不受支持时使用的备用JavaScript模块路径。
Returns:
当Web Worker已加载并编译WebAssembly模块并准备好处理任务时解析为结果的Promise。
Throws:
  • RuntimeError : 此浏览器不支持WebAssembly,且未提供备用模块

isDestroyed()boolean

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

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

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

调度一个任务,由Web Worker异步处理。如果当前活动任务数 超过构造函数设置的最大值,将立即返回undefined。 否则,返回一个Promise,当Worker完成时将解析为Worker返回的结果。
Name Type Description
parameters object 将发布到Worker的任何输入数据。
transferableObjects Array.<object> optional 包含在parameters中的对象数组,应该 转移到Worker而不是复制。
Returns:
当结果可用时将解析为结果的Promise,或者如果活动任务过多则返回undefined,
Example:
const taskProcessor = new Cesium.TaskProcessor('myWorkerPath');
const promise = taskProcessor.scheduleTask({
    someParameter : true,
    another : 'hello'
});
if (!Cesium.defined(promise)) {
    // 活动任务过多 - 稍后重试
} else {
    promise.then(function(result) {
        // 使用任务的结果
    });
}
Need help? The fastest way to get answers is from the community and team on the Cesium Forum.