0

次のようなコードがあります。

for (var index = 1; index < args.length; index++) {
    var shell = args[index];
    listener.of('/' + shell.namespace || 'shotgun')
        .on('connection', function (socket) {
            socket.on('execute', function (cmdStr, context, options) {
                console.log('Received: ' + cmdStr);
                var result = shell.execute(cmdStr, context, options);
                socket.emit('result', result);
            });
        });
}

私はsocket.ioを使用しており、複数の名前空間を作成しています。socket.io 名前空間はうまく機能していますが、executeコールバックでは、への参照shellは常に for ループで作成された最後のオブジェクトです。その反復からの参照を保持するには、ループの各反復が必要shellです。

4

3 に答える 3