javascript - 无法通过 node.js 中的 socket.io 发送 Set() 对象

标签 javascript node.js socket.io set

我正在尝试发送 Set()对象来自 socket.io来自 node.js服务器。但是从客户端我得到一个空对象。

//server side
var set=new Set([1,2,3]);
socket.emit('set', set);
console.log(set); //Set(3) {1,2,3}
//client side
socket.on('set',function(set){
  console.log(set); //{}
});
这是为什么 ?

最佳答案

来自 docs :

All serializable datastructures are supported, including Buffer.

Set不可序列化(尝试执行 JSON.stringify(new Set([1, 2, 3])) 。但是,Array 是可序列化的,您可以使用 spread operator 将集合转换为数组:
const s = new Set([1,2,3]);
socket.emit('set', [...s]);

关于javascript - 无法通过 node.js 中的 socket.io 发送 Set() 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64134151/

相关文章:

javascript - 来自javascript的全屏

javascript - 使用和不使用ajax在OL3中加载矢量图层

javascript - 在 mixin 中使用 vue-router

javascript - 无法传递 mongoose 数据来查看 Jade

javascript - 在 Meteor 的测验应用程序中显示提示

javascript - 与 Firebase 的协作实时 map 无法正常工作

javascript - Alexa Node js Lambda 函数给出响应 null

mysql - Node.js - 获取所有已连接客户端 IP 地址的列表?

node.js - Nodejs集群socket.io nginx配置

node.js - Socket.io 脚本大小减少