Socket.IO无法访问外部数组

时间:2016-08-23 00:27:16

标签: javascript arrays for-loop websocket socket.io

我听每一个事件并制作一个循环。问题是当我打开页面时,它们的所有类都是“白色文本”。但是当数据来自show_inventory时,该类应该是“洋红色文本”。

抱歉我的小英语。

var events = {
    log_stats:                         'magenta',
    show_inventory:                    'magenta',
    arrived_at_cluster:                'white',
    arrived_at_fort:                   'white',
    softban_log:                       'magenta',
    softban_fix_done:                  'white',
    used_lucky_egg:                    'white'
}   

socket_io = io.connect('127.0.0.1:4000');
for (var k in events){      
    if (events.hasOwnProperty(k)) {
        socket_io.on(k+':user', function (data) {
            mapView.log({
                message: "<p class='" + events[k] + "-text" + "'>" + data['data']['msg'] + "</p>",
                color: events[k] + "-text"
            });

        });
    }
}

1 个答案:

答案 0 :(得分:0)

我发现了我的问题。 @jfriend00提及let。我搜索了一下,了解了用法。你可以找到代码belove。添加了一行:let color = events[k];

非常感谢。

for (var k in events){      
    if (events.hasOwnProperty(k)) {
        let color = events[k];
        socket_io.on(k+':oralunal', function (data) {
                kayit({
                    message: "<p class='" + color + "-text" + "'>" + data['data']['msg'] + "</p>",
                    color: color + "-text"
                });
                console.log(renk);
        });
    }
}