javascript - 如何将错误对象传递给socket.io回调

标签 javascript node.js socket.io

我在 socket.io 中使用回调

客户端代码:

socket.emit('someEvent', {data:1}, function(err, result) {
    console.log(err.message); 
});

服务器代码:

socket.on('someEvent', function(data, callback) {
    callback(new Error('testing error'));
});

使用上面的代码,客户端总是打印出undefined。如果我将服务器端代码更改为以下内容,我可以看到错误消息。

socket.on('someEvent', function(data, callback) {
    callback({message:'testing error'});
});

我可以将我自己的自定义对象传递给客户端,而不是错误对象。有什么想法吗?

最佳答案

socket.io 数据被序列化为 JSON,只能表示普通对象。您需要将任何错误序列化为可识别的纯对象格式,或者让 Socket.IO 的标准序列化来完成它的工作(这将导致 Error 实例的纯空对象。

关于javascript - 如何将错误对象传递给socket.io回调,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20915608/

相关文章:

python - 如何从 GCP Shell 上部署的应用程序获取隧道链接?

javascript - 使用 Socket.IO 发送数据的频率如何?

javascript - `return` 关键字在 `forEach` 函数中意味着什么?

javascript - 用于 IE 的 AngularJS 调试工具,如 Batarang

javascript - 是否可以说 Node 编译器暂时忽略严格模式?

javascript - 如果您的服务器对自己执行 XHR 会怎样?

javascript - 我如何 JSON.parse 带有 HTML 标签的字符串?

Javascript 正则表达式检查标志支持

python - Azure VM 似乎会终止长时间运行的 MySql 查询

node.js - socket.emit 不适用于其他打开的连接