TaskProcessor

new Cesium.TaskProcessor(workerPath, maximumActiveTasks)

Web Worker 的包装器,允许为给定 worker 调度任务, 通过 Promise 异步返回结果。 在计划任务之前,不会构造 Worker。
Name Type Default Description
workerPath string 工作线程的 URL。这可以是绝对路径,也可以是相对于 Cesium Workers 文件夹的路径。
maximumActiveTasks number Number.POSITIVE_INFINITY optional 活动任务的最大数量。 一旦超过, scheduleTask 不会再将任何任务排队,因此允许 工作将在未来的帧中重新安排。

Methods

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

一旦对象被销毁,就不应该使用它;调用 isDestroyed 将导致 DeveloperError 异常。

initWebAssemblyModule(webAssemblyOptions)Promise.<*>

向 Web Worker 发布消息,并配置以初始化加载 并异步编译一个 Web 汇编模块,以及一个可选的 在不支持 Web Assembly 时使用的回退 JavaScript 模块。
Name Type Description
webAssemblyOptions object optional 对象,具有以下属性:
Name Type Description
modulePath string optional Web 程序集 JavaScript 包装器模块的路径。
wasmBinaryFile string optional Web 程序集二进制文件的路径。
fallbackModulePath string optional 如果不支持 Web 程序集,要使用的回退 JavaScript 模块的路径。
Returns:
当 Web Worker 已经加载并编译了 Web 汇编模块并准备好处理任务时,它解析为结果的 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 而不是 copied。
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
    });
}
Need help? The fastest way to get answers is from the community and team on the Cesium Forum.