我正在开发一个在 Web 浏览器中运行的 Javascript 模拟器。它有一个主循环:
do {
updateVisualization(simulator);
simulator.doStep();
} while (!reachedGoal(simulator));
对于每次迭代,我都需要运行几个必须同时执行的工作人员:
doStep = function() {
...
for (every agent in the simulation) {
var worker = new Worker('worker.js');
worker.onmessage = function(event) {
...
}
worker.postMessage(...);
}
// Here is the problem
}
我的问题是:我怎么能等待每个工人完成?