Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/34.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Socket.IO更新引导模式数据_Javascript_Node.js - Fatal编程技术网

Javascript Socket.IO更新引导模式数据

Javascript Socket.IO更新引导模式数据,javascript,node.js,Javascript,Node.js,我有一个JS服务器,它将数组发送到站点,引导模式只有在您关闭并再次打开它时才会更新,但我的问题是。如果它已打开,我如何更新它 这是我的代码,如果它是关闭的,你打开它 function findGame(id){ for(var i = 0; i < games.length; i++){ if(games[i].id == id){ return games[i]; } } } function showGame(i

我有一个JS服务器,它将数组发送到站点,引导模式只有在您关闭并再次打开它时才会更新,但我的问题是。如果它已打开,我如何更新它

这是我的代码,如果它是关闭的,你打开它

function findGame(id){
    for(var i = 0; i < games.length; i++){
        if(games[i].id == id){
            return games[i];
        }
    }
}

function showGame(id){
    var data = findGame(id);
    var skins_creator = [];
    var skins_opponent = [];
    $('.watch-cf .modal-header h3').html('Watch Coinflip | #' + id);
    $('.modal-body #creator-name').html(data.creator[0].name);
    $('.modal-body #hash').html(data.hash);
    $('.modal-body .duel-user-img').attr('src', 'https://steamcdn-a.akamaihd.net/steamcommunity/public/images/avatars/1a/'+data.creator[0].icon+'_full.jpg');
    $('.modal-body #cf-creator-val').html(data.creator[0].totalSkins + ' skins valued at $' + data.creator[0].totalAmount);
    data.creator[0].items.forEach(function (kevin){
        skins_creator.push('<div class="cf-skin" style="box-shadow: inset 0 0 20px #'+kevin.color+'"> <div class="cf-skin-img"><img src="https://steamcommunity-a.akamaihd.net/economy/image/class/730/'+kevin.classid+'/111fx57f"></div><div class="cf-skin-name">'+kevin.name+'<p>'+kevin.price+' USD</p></div></div>');
    });
    if(Object.keys(data.opponent).length > 0){
        $('.modal-body #opponent-name').html(data.opponent.name);
        $('.modal-body .duel-user-img-opponent').attr('src', 'https://steamcdn-a.akamaihd.net/steamcommunity/public/images/avatars/1a/'+data.opponent.icon+'_full.jpg');
        $('.modal-body #cf-opponent-val').html(data.opponent.totalSkins + ' skins valued at $' + data.opponent.totalAmount);
        data.opponent.items.forEach(function(kevin){
            skins_opponent.push('<div class="cf-skin" style="box-shadow: inset 0 0 20px #'+kevin.color+'"> <div class="cf-skin-img"><img src="https://steamcommunity-a.akamaihd.net/economy/image/class/730/'+kevin.classid+'/111fx57f"></div><div class="cf-skin-name">'+kevin.name+'<p>'+kevin.price+' USD</p></div></div>');
        });
        $('.modal-body .cf-opponent-skins').html(skins_opponent.join(""));
    }
    $('.modal-body .cf-creator-skins').html(skins_creator.join(""));
    $('.watch-cf').modal('show');
}

您只需重新分配
game
变量

默认情况下,Javascript不会监视变量更改,因此在您的情况下,您需要再次运行
showGame
中的整个逻辑

socket.on('games', function(data){
    games = data;
    showGame('your_id');
});

谢谢,先生,它需要一些调整,但它似乎工作!如果建议的解决方案有效,请接受作为答案;)
socket.on('games', function(data){
    games = data;
    showGame('your_id');
});