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