一个封装了 Web Worker 的类,允许为给定的工作线程调度任务,
通过承诺异步返回结果。
Worker 在调度任务之前不会被构造。
| Name | Type | Default | Description |
|---|---|---|---|
workerPath |
string | Worker 的 URL。可以是绝对路径,也可以相对于 Cesium Workers 文件夹的相对路径。 | |
maximumActiveTasks |
number |
Number.POSITIVE_INFINITY
|
optional 最大活动任务数量。一旦超过, scheduleTask 将不再排队任何更多任务,允许 在未来的帧中重新调度工作。 |
Methods
向 Web Worker 发送消息,配置以异步加载和编译 WebAssembly 模块,以及可选的
备用 JavaScript 模块,用于在不支持 WebAssembly 的情况下使用。
| Name | Type | Description | ||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
webAssemblyOptions |
object |
optional
一个具有以下属性的对象:
|
Returns:
一个 Promise,当 Web Worker 加载并编译 WebAssembly 模块并准备处理任务时解析为结果。
Throws:
-
RuntimeError : 此浏览器不支持 WebAssembly,并且未提供备份模块。
Returns:
如果此对象已被销毁,则返回 true;否则返回 false。
调度一个任务,通过 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
});
}
