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

Cha*_*mod 6 javascript set node.js socket.io

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

//server side
var set=new Set([1,2,3]);
socket.emit('set', set);
console.log(set); //Set(3) {1,2,3}
Run Code Online (Sandbox Code Playgroud)
//client side
socket.on('set',function(set){
  console.log(set); //{}
});
Run Code Online (Sandbox Code Playgroud)

这是为什么 ?

gur*_*sko 6

来自文档

支持所有可序列化的数据结构,包括Buffer.

Set不可序列化(尝试执行JSON.stringify(new Set([1, 2, 3]))。但是,它是可序列化的,您可以使用扩展运算符Array将集合转换为数组:

const s = new Set([1,2,3]);
socket.emit('set', [...s]);
Run Code Online (Sandbox Code Playgroud)