我正在使用ZMQ(ZeroMQ)进行IPC -
如果我能收到消息,我想处理该消息,将其路由到所需的处理函数,可以是名为 one
或 two
的函数(或three
)。
var messageHandler = {
one: function(msg){},
two: function(msg){}
}
现在,我知道有两种方法可以做到这一点:
我可以像这样输入一堆 case
语句:
reply.on('message',function(msg){
switch(msg){
case 'one':
messageHandler.one(msg);
break;
case 'two':
messageHandler.two(msg);
break;
default:
///
}
}
或者我可以使用更多像这样的速记方法:
reply.on('message',function(msg){
if(typeof messageHandler[msg]=='function'){
messageHandler[msg](msg);
} else{
throw new Error('no handler error');
}
}
是否有充分的理由使用一个而不是另一个?
答案 0 :(得分:1)
似乎很清楚,最好的方法是第二种方式:
if(typeof messageHandler[msg]=='function'){
messageHandler[msg](msg);
} else{
throw new Error('no handler error');
}
原因是: