javascript - 发送数组以发出导致最大调用堆栈大小超出 Javascript socket.io
问题描述
我有一个功能:
// *************** Send Players their cards ***************
function sendplayerThierCards(myplayerNum, myN_Cards){
console.log("sending player: "+ myplayerNum + " their cards: " + myN_Cards);
socket.emit('playersCards', {
playerNum: myplayerNum,
myCards: myN_Cards,
room: code
});
}
调用它的代码:
let myHand = new Array();
for(let i=0; i<5; i++)
myHand[i] = player1Hand[i]
sendplayerThierCards(1,myHand);
如果我将字符串发送到 myN_Cards,则调用发出。如果我将数组发送到 myN_Cards,我会收到错误消息:“最大调用堆栈大小超出了 Javascript”
服务器在这里: https ://github.com/tsehnoutka/GameServer
游戏代码在这里: https ://github.com/tsehnoutka/callStackSizeExceeded
这对我来说没有意义,因为我能够在我的代码的另一部分发送一个数组。另一个数组:
var playerInfo = [{
name: "Red",
color: "red",
background: "Coral"
},
{
name: "Blue",
color: "blue",
background: "LightSkyBlue"
},
{
name: "Green",
color: "green",
background: "Lime"
},
{
name: "Yellow",
color: "yellow",
background: "#fcfce8"
},
];
及其作用:
// *************** Send All Players ***************
function sendAllPlayersJoined(){
console.log("sending all players info");
socket.emit('allPlayersNames', {
players: playerInfo
});
}
解决方案
我改变了我发送的数据量,它似乎有效,而不是整张卡,我只是发送等级和花色
for ( i = 0; i < 5; i++)
myHand[i] = {suit: player1Hand[i].suit, rank: player1Hand[i].rank};
sendplayerThierCards(1, myHand);
感谢大家
推荐阅读
- spring-integration - “文件夹处于只读模式”异常
- java - Spring boot Hibernate 一对多关系
- wpf - 如何将 WPF 框架扩展到其父宽度?
- multithreading - 阻止除一个之外的所有线程的最佳方法是什么?
- javascript - Material UI Theme - 交换原色和副色
- sql - 计算SQL中两个日期之间的月数
- scala - scala:使用while循环检查是否是素数
- javascript - 我在 PHP 回显语句中用完了引号
- javascript - 更新图表时修改chart.js中的标签
- javascript - Grouped_select,如何显示以前选择的项目和/或类别