圍繞Web工作者的包裝器,允許為給定工作者安排任務(wù),通過承諾異步返回結(jié)果。只有在計劃任務(wù)后,才能構(gòu)造工作進(jìn)程。
new TaskProcessor(workerName, maximumActiveTasks)
Parameters:
workerName
(String)
工人的姓名。這應(yīng)該是Workers文件夾中的腳本。
maximumActiveTasks
(Number)
(default 5
)
活動任務(wù)的最大數(shù)目。一旦超過,scheduleTask將不再對任何任務(wù)進(jìn)行排隊,從而允許在將來的幀中重新安排工作。
Methods
destroy()
通過配置向Web工作者發(fā)送消息,以異步初始化加載和編譯Web程序集模塊,以及在不支持Web程序集時使用的可選回退javascript模塊。
Parameters:
webAssemblyOptions
(Object)
一個
Name | Description |
---|---|
webAssemblyOptions.modulePath
String
|
Web程序集javascript包裝模塊的路徑。 |
webAssemblyOptions.wasmBinaryFile
String
|
Web程序集二進(jìn)制文件的路徑。 |
webAssemblyOptions.fallbackModulePath
String
|
如果不支持Web程序集,則使用的回退javascript模塊的路徑。 |
如果此對象被破壞,則返回true;否則返回false。
如果此對象被破壞,則不應(yīng)使用它;調(diào)用除
scheduleTask(parameters, transferableObjects) → {Promise.<Object>|undefined}
如果此對象被破壞,則不應(yīng)使用它;調(diào)用除
isDestroyed
以外的任何函數(shù)將導(dǎo)致DeveloperError
異常。
安排Web工作者異步處理的任務(wù)。如果當(dāng)前有比構(gòu)造函數(shù)設(shè)置的最大值更多的活動任務(wù),將立即返回未定義。否則,返回一個承諾,該承諾將解析為工作人員在完成時返回的結(jié)果。
Parameters:
parameters
(Object)
將發(fā)布到工人的任何輸入數(shù)據(jù)。
transferableObjects
(Array.<Object>)
包含在參數(shù)中的對象數(shù)組,應(yīng)將其傳輸?shù)焦ぷ鬟M(jìn)程,而不是復(fù)制。
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
});
}