TaskProcessor 是一个用于异步处理任务的对象,可用于将耗时的操作置于 Web Worker 中,避免阻塞主线程。
以下是创建 TaskProcessor 的代码示例:
var taskProcessor = new Cesium.TaskProcessor('/path/to/worker.js');
构造函数的参数是指定 worker.js 脚本的路径。
创建 TaskProcessor 对象之后,可以通过 scheduleTask
方法传递任务。
var taskData = {
operation: 'complexOperation',
params: {
a: 1,
b: 2
}
};
taskProcessor.scheduleTask(taskData).then(function(result){
console.log('Task complete:', result);
});
scheduleTask
方法的参数是一个任务对象,其中必须包含 operation
字段,用于指定要执行的操作,以及 params
字段,用于将操作所需的参数传递给 worker。执行完毕之后会返回一个 Promise,当操作完成后,Promise 将被解析,并返回操作结果。
TaskProcessor 提供了 onMessage
属性,用于监听 Web Worker 发来的信息:
taskProcessor.onMessage.addEventListener(function (event) {
console.log('Worker message:', event.data);
});
在 TaskProcessor 不再需要时,应调用 destroy
方法销毁:
taskProcessor.destroy();
方法名 | 描述 |
---|---|
scheduleTask(taskData) |
立即将任务推送至工作线程。返回一个 Promise,当操作完成后,Promise 将被解析,并返回操作结果。 |
destroy() |
销毁 TaskProcessor 对象。 |
setMessageEndpoint(endpoint) |
设置 worker 脚本的路径。 |
setWorkerOptions(workerOptions) |
配置 worker 脚本的选项。 |
事件名 | 描述 |
---|---|
onMessage |
监听 worker 发来的信息。 |
onError |
监听 worker 的错误信息。 |