TaskProcessor

new SuperMap3D.TaskProcessor(workerName, maximumActiveTasks)

网络Worker的包装器,可为指定 Worker 调度任务,并通过promise异步返回结果。 在任务计划完成之前,不会构建 Worker。
Name Type Default Description
workerName String workerName它应该是 Workers 文件夹中的一个脚本。
maximumActiveTasks Number 5 optional 活动任务的最大数量。一旦超过,scheduleTask 就不会再排队等待任何任务,从而允许在未来框架中重新安排工作。

Methods

destroy()undefined

销毁该对象。这将立即终止Worker。

对象一旦被销毁,就不应该再使用;调用任何函数,除了isDestroyed将导致DeveloperError异常。
Returns:

isDestroyed()Boolean

如果此对象被销毁则返回true;否则为false。

如果该对象已被破坏,则不应使用;调用任何函数,除了isDestroyed将导致DeveloperError异常。
Returns:
如果此对象被销毁,则为True;否则为false。
See:

scheduleTask(parameters, transferableObjects)Promise.<Object>|undefined

安排一个由web worker异步处理的任务。如果当前活动的任务数量超过构造函数设置的最大值,则立即返回undefined。否则,返回一个promise,该promise将解析为worker完成后发回的结果。
Name Type Description
parameters * 任何将被发送到worker的输入数据。
transferableObjects Array.<Object> optional 包含在参数中的对象数组,这些对象应该传递给工作线程,而不是复制。
Returns:
当可用时将解析为结果的Promise,或者在活动任务太多时未定义,
Example:
var taskProcessor = new SuperMap3D.TaskProcessor('myWorkerName');
var promise = taskProcessor.scheduleTask({
    someParameter : true,
    another : 'hello'
});
if (!SuperMap3D.defined(promise)) {
    // too many active tasks - try again later
} else {
    SuperMap3D.when(promise, function(result) {
        // use the result of the task
    });
}