我正在尝试发送 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/