Web Worker 的包装器,允许为给定 worker 调度任务,
通过 Promise 异步返回结果。
在计划任务之前,不会构造 Worker。
| Name | Type | Default | Description |
|---|---|---|---|
workerPath |
string | 工作线程的 URL。这可以是绝对路径,也可以是相对于 Cesium Workers 文件夹的路径。 | |
maximumActiveTasks |
number |
Number.POSITIVE_INFINITY
|
optional 活动任务的最大数量。 一旦超过, scheduleTask 不会再将任何任务排队,因此允许 工作将在未来的帧中重新安排。 |
Methods
向 Web Worker 发布消息,并配置以初始化加载
并异步编译一个 Web 汇编模块,以及一个可选的
在不支持 Web Assembly 时使用的回退 JavaScript 模块。
| Name | Type | Description | ||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
webAssemblyOptions |
object |
optional
对象,具有以下属性:
|
Returns:
当 Web Worker 已经加载并编译了 Web 汇编模块并准备好处理任务时,它解析为结果的 Promise。
Throws:
-
RuntimeError : 此浏览器不支持 Web Assembly,并且未提供备份模块
Returns:
如果此对象被销毁,则为 True;否则为 false。
安排一个任务,由 Web Worker 异步处理。 如果目前有更多
活动任务超过构造函数设置的最大值,将立即返回 undefined。
否则,返回一个 Promise,该 Promise 将解析为 worker 发回的结果,当
完成。
| Name | Type | Description |
|---|---|---|
parameters |
object | 将要提交给工作器的任何输入数据。 |
transferableObjects |
Array.<object> | optional 一个包含在参数中的对象数组,应当 已转移给工人,而不是复制。 |
Returns:
要么是一个在结果可用时会解析为该结果的 Promise,要么是未定义
如果有太多活跃任务,
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
});
}
