如何从下面的上下文中调用startSendingWork
?
'use strict';
const
cluster = require('cluster'),
zmq = require('zmq'),
self = this;
if (cluster.isMaster) {
let
masterWorkPusher = zmq.socket('push').bind('ipc://master-push.ipc'),
masterResultsPuller = zmq.socket('pull').bind('ipc://master-pull.ipc'),
numWorkersAlive = 0,
masterResultsPuller.on('message', function(data){
if (data.message == 'ready') {
numWorkersAlive++;
if (numWorkersAlive == 3) {
self.startSendingWork(masterWorkPusher); // UNRESOLVED FUNCTION how to call startSendingWork???
}
} else if (data.message == 'result') {
console.log(data.result);
}
});
for (let i = 0; i < 3; i++) {
cluster.fork();
}
} else { // not master
}
function startSendinWork(masterWorkPusher) {
console.log("sending 30 jobs...");
for (let i = 0; i < 30; i++) {
masterWorkPusher.send({message: "do_some_work"});
}
}
答案 0 :(得分:1)
有三种方法可以在javascript中调用函数。
functionName();
functionName.call(context, args);
functionName.apply(context, args[])
注意在调用函数之前,请确保已定义它。 在你的情况下,你试图调用尚未定义的函数。
答案 1 :(得分:0)
这是一个错字,因为Wiktor说定义为startSendinWork