我正在尝试使用parallel.js并行化JavaScript项目,但我遇到了某种解析问题。
该项目的目标是让9家售票员并行处理客户。我们现在有一个工作代码,但客户的处理仍然是异步的,我们正在尝试使用parallel.js来实现并行化部分。
在并行化之前,我在JS中的原始代码是:
var ticketers = ["H", "M1", "M2", ...]; //There are 9 ticket-sellers
for(var i = 0; i < ticketers.length; i++) {
ticketerBehavior(i);
}
如果售货员是9个售票员,而ticketerBehavior()是负责售票员收到客户时会发生什么的功能。
使用parallel.js文档和示例,这是我们尝试过的:
var ticketBehav = function(ticketers){
for (var i = 0; i < ticketers.length; i++)
ticketerBehavior(i);
};
var p = new Parallel(100);
p.spawn(ticketBehav(ticketers)).then(console.log(ticketBehav(ticketers)));
但是,当我们运行程序时,它会给我们这个错误:
/home/user/node_modules/paralleljs/lib/parallel.js:106
return preStr + 'process.on("message", function(e) {process.send(JSON.stringify((' + cb.toString() + ')(JSON.parse(e).data)))})';
^
TypeError: Cannot read property 'toString' of undefined
at Parallel.getWorkerSource (/home/user/node_modules/paralleljs/lib/parallel.js:106:91)
我尝试使用谷歌搜索错误,但到目前为止它没有返回任何结果。我对如何解决此错误感到有点困惑,因为我们的数据在技术上可序列化为JSON,因为它们只是字符串。版本兼容性是否会导致运行parallel.js出现任何问题?
有谁可以告诉我从哪里开始排除故障?任何提示/建议将不胜感激。谢谢!
答案 0 :(得分:0)
试试这个:
然后返回您的数据
p.spawn(function (ticketers) {return ticketBehav(data)}).then(function(data){ console.log(data) });