2012-04-11 10 views
6

Diziden çekilen parametrelere dayanarak bir dizi http isteği oluşturmak için node.js async paketini, özellikleEachSeries için kullanıyorum. Her talebin geri çağrısında, farklı yanıt türlerine yanıt vermek için bazı/if ifadeleri var.node.js async forEachSeries kullanıldığında 'devam etmek' için eşdeğer bir ifade var mı?

// This is the callback of a GET request inside of a forEachSeries 
function(error, response) { 
    if (response.results) { 
     // Do something with results 
    } 
    else if (!response.results) { 
     // Would like to use a continue statement here, but 
     // this is not inside of a loop 
    } 
    else { 
     // Do something else 
    } 
} 

Yukarıdakilerin içinde kullanabileceğim 'devam'a' eşdeğer bir eş var mı? Bu teknik bir döngü içinde değil, bu yüzden devam etmiyor.

+0

bir iç 'CONTINUE açıklamaya erişimi olmayan etmek için bir sebep yoktur kontrol yapısı 'if/else' gibi. Tam olarak ne yapmaya çalışıyorsun? Çünkü mantığınızı gözden geçirmeniz gerekiyormuş gibi gözüküyor ... –

+0

! Response.results, büyük olasılıkla sunucudan bir miktar sınırlamadan kaynaklanıyor. Şu anda, yukarıdaki talebin içeride olduğu forEachSeries'teki geri çağrı() 'yı iade edebilirim, ancak bu yaklaşımla bazı olası veri kaybı var. Sadece node.js. içinde forEachSeries devam etmek için bir eşdeğer olup olmadığını anlamaya çalışıyorum. Geri dönüşün gerçek değerine benzer bir şey, her biri jQuery'de kullanılır. – TankofVines

cevap

5

buna benzer etki gösterdiği sizi return gerekir sadece bir işlev olduğu için:

else if (!response.results) { 
    return; 
} 
+0

Yukarıdaki kod biraz garip olsa da, düşündüğüm şey buydu - başka bir ifade asla vurulmayacak ve bu durumda basit bir eğer/else yeterli olacak ve muhtemelen bir "devam" tür akışına ihtiyaç duymayacaktı. kontrol. – Reid

+0

@Reid - Daha büyük kod snippet'lerinde daha mantıklı olabilse de, örneğin 'else if' içinde başka bir kod dalı varsa. –

+0

@Justin - Yanıt için teşekkürler. Bu, sorunumu tamamen düzeltmedi, ancak bu soru için en basit çözüm bu yüzden kabul ettim. Daha büyük bir snippet göndermeliydim. – TankofVines

İlgili konular