次のようなコードがあります。
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
です。