49

最近我一直在搞乱socket.io,发现了一个有趣的东西,我可以像这样发出函数回调。

我开始像这样在客户端发射:

client.emit('eventToEmit', dataToEmit, function(error, message){
    console.log(error);
    console.log(message);
});

然后我可以像这样从服务器端触发回调:

client.on('eventToEmit', function(data, callback){
    console.log(data);
    callback('error', 'message');
});

一切正常,没有错误,但我很感兴趣,如果做这样的事情是合适的,因为到目前为止我在文档或任何示例中都没有看到类似的东西。

4

2 回答 2

50

这是完全合法的。

这些回调称为“确认函数”,在 Wiki中简要提及,并在NPM 页面(“获取确认”)上进行了更详细的描述。

编辑:更多最新的文档可以在这里找到。

于 2013-12-02T21:32:39.650 回答
0

根据socket.emit() 文档,确认函数(回调)必须是socket.emit()调用的最后一个参数。我遇到了回调null在服务器代码中的问题。
确保回调是/是最后一个参数socket.emit()

例如

// correct
socket.emit('eventname', arg1, arg2, callback);

// incorrect
socket.emit('eventname', arg1, callback, arg2);
于 2021-12-15T01:17:46.887 回答