围绕 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 模块的配置,以及一个可选的
在 Web Assembly 不受支持时使用的回退 JavaScript 模块。
| Name | Type | Description | ||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
webAssemblyOptions |
object |
optional
An object with the following properties:
|
Returns:
当 Web Worker 已加载并编译完 WebAssembly 模块且准备好处理任务时,解析为该结果的 Promise。
Throws:
-
RuntimeError :此浏览器不支持 Web Assembly,且没有提供备份模块。
Returns:
如果此对象已被销毁则为 True,否则为 false。
调度一个由 Web Worker 异步处理的任务。如果当前活动任务数
超过了构造函数设置的最大值,将立即返回 undefined。
否则,返回一个 Promise,该 Promise 将在
Worker 完成并回传结果时解析为该结果。
| Name | Type | Description |
|---|---|---|
parameters |
object | 任何将被发送给 Worker 的输入数据。 |
transferableObjects |
Array.<object> | optional 包含于参数中的对象数组,这些对象应被 转移到 Worker,而不是被复制。 |
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
});
}
