diff --git a/lib/internal/cluster/master.js b/lib/internal/cluster/master.js index 2ae18165695be7..79afe3e80c383b 100644 --- a/lib/internal/cluster/master.js +++ b/lib/internal/cluster/master.js @@ -248,19 +248,21 @@ cluster.disconnect = function(cb) { intercom.once('disconnect', cb); }; +const methodMessageMapping = { + close, + exitedAfterDisconnect, + listening, + online, + queryServer, +}; + function onmessage(message, handle) { const worker = this; - if (message.act === 'online') - online(worker); - else if (message.act === 'queryServer') - queryServer(worker, message); - else if (message.act === 'listening') - listening(worker, message); - else if (message.act === 'exitedAfterDisconnect') - exitedAfterDisconnect(worker, message); - else if (message.act === 'close') - close(worker, message); + const fn = methodMessageMapping[message.act]; + + if (typeof fn === 'function') + fn(worker, message); } function online(worker) {