设置回调函数nodejs的值

时间:2015-06-15 14:07:58

标签: javascript callback socket.io

socket.on('test', function (call, callback){ 
    $('.button_1').on('click', function(){
        callback('button_1 is clicked'); 
    });
    $('.button_2').on('click', function(){
        callback('button_2 is clicked');
    });
});

我不知道在这种情况下如何设置回调值。 当我删除第一个回调(); 并保留第二个或我删除第二个并保留第一个我的代码工作正常,但当我保留他们两个代码不起作用所有

1 个答案:

答案 0 :(得分:0)

由于callback是您传递给on()的函数的参数,因此on()函数负责确定回调。

基于我对socket.io文档的阅读:它根本没有传递第二个参数。

所以你需要备份。

socket.on('test', function (call, callback){ 
                                  ^^^^^^^^

删除它。它将不会被使用,并将在更广泛的范围内屏蔽任何回调。

然后在其他地方(即在更广泛的范围内)添加回调函数:

function callback(string_of_what_is_clicked) {
    alert(string_of_what_is_clicked);
}
socket.on('test', function (call){ 
    $('.button_1').on('click', function(){
        callback('button_1 is clicked'); 
    });
// etc
  

这是一个客户端部分,它向服务器端发送一个回调,告诉他们点击了哪个按钮。我的问题和你的解决方案之间没有关系

如果要在单击按钮时从客户端向服务器发送消息,则不要使用on执行此操作。您使用emit

$('.button_1').on('click', function(){
    socket.emit('button clicked', 'button_1 is clicked'); 
});

然后套接字侦听事件:

socket.on('button clicked', function (msg) {
    console.log('click: ' + msg);
});