2016-03-29 23 views
1

İstemcilerden oluşan bir nesne dizim var, bu yüzden üzerinde döngüleri yinelemek için kullanıyorum Ben istemcilerim.lenght = 2, ancak yineleme sadece 1. Ve burada değişken kapsam sorunu yok . Sadece neden olmadığına bakma. KodDöngü tekrarları için yalnızca bir kez

socket.on('idleDisconnectAllClient', function(receivedData) { 
    LOG("idleDisconnectAllClient"); 

    var clientIndex = findMainIndexByDataBaseID(receivedData.dataBaseID); 
    if (clientIndex != -1) { 
     console.log('clients lenght', clients[clientIndex].data.length); 
     for (var i = 0; i < clients[clientIndex].data.length; i++) { 
      var client = clients[clientIndex].data[i]; 
      client.disconnect(); 

      console.log('client ' + i); 
     } 
    } 
}); 

Konsol

2016-03-29 04:13:01 - idleDisconnectAllClient 
clients lenght 2   
client 0 
+0

Bir konsol yanıt sonrası (reddi, bu eski düğüm sürümleri üzerinde çalışmayabilir, ES6 gelen yağ okları kullanır). 2 – SLI

+1

Bu varyantlarLen = istemciler [clientIndex] .data.length; 've sizin için döngüinizi ayarlayın (var i = 0; i jpaljasma

+0

Bu yardımcı olur! Teşekkür ederim. – SLI

cevap

1

jpaljasma - https://stackoverflow.com/users/2079695/jpaljasma beni Sorunu anlamak için yardımcı olur.

Kullandığımda - client.disconnect() bu istemci dizisinden yalnızca geçerli istemciyi siler. Yani bu yüzden benim döngüsüm sadece 1 kez gerçekleştirdi.

0

Eğer ES5 forEach yapı üzerinden yineleme:

clients[clientIndex].data.forEach(client => client.disconnect()) 

İlgili konular