圍繞Web工作者的包裝器,允許為給定工作者安排任務,通過承諾異步返回結果。只有在計劃任務后,才能構造工作進程。
new TaskProcessor(workerName, maximumActiveTasks)
Parameters:
workerName
(String)
工人的姓名。這應該是Workers文件夾中的腳本。
maximumActiveTasks
(Number)
(default 5
)
活動任務的最大數目。一旦超過,scheduleTask將不再對任何任務進行排隊,從而允許在將來的幀中重新安排工作。
Methods
destroy()
通過配置向Web工作者發送消息,以異步初始化加載和編譯Web程序集模塊,以及在不支持Web程序集時使用的可選回退javascript模塊。
Parameters:
webAssemblyOptions
(Object)
一個
Name | Description |
---|---|
webAssemblyOptions.modulePath
String
|
Web程序集javascript包裝模塊的路徑。 |
webAssemblyOptions.wasmBinaryFile
String
|
Web程序集二進制文件的路徑。 |
webAssemblyOptions.fallbackModulePath
String
|
如果不支持Web程序集,則使用的回退javascript模塊的路徑。 |
安排Web工作者異步處理的任務。如果當前有比構造函數設置的最大值更多的活動任務,將立即返回未定義。否則,返回一個承諾,該承諾將解析為工作人員在完成時返回的結果。
Parameters:
parameters
(Object)
將發布到工人的任何輸入數據。
transferableObjects
(Array.<Object>)
包含在參數中的對象數組,應將其傳輸到工作進程,而不是復制。
Example
var taskProcessor = new bmgl.TaskProcessor('myWorkerName');
var promise = taskProcessor.scheduleTask({
someParameter : true,
another : 'hello'
});
if (!bmgl.defined(promise)) {
// too many active tasks - try again later
} else {
bmgl.when(promise, function(result) {
// use the result of the task
});
}