2012-04-11 49 views
6

我使用node.js異步包,特別是forEachSeries,根據從數組中繪製的參數進行一系列http請求。在每個請求的回調中,我有一些if/else語句來響應不同類型的響應。當使用node.js async forEachSeries時,是否存在與「繼續」等效的語句?

// 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 
    } 
} 

有沒有等同於'繼續',我可以使用裏面的其他如果上面?這在技術上不在循環內,所以繼續不起作用。

+0

有一個理由讓你沒有訪問到內部的'continue'聲明像'if/else'這樣的控制結構。你究竟想要做什麼?因爲它看起來像你需要檢查你的邏輯... – 2012-04-11 13:18:55

+0

!response.results很可能是由於服務器的一些速率限制。目前,我可以返回上面的請求所在的forEachSeries上的回調函數(),但這種方法存在一些潛在的數據丟失問題。試圖找出是否有相當於在node.js forEachSeries中繼續。類似於每個jQuery $中使用return true的方式。 – TankofVines 2012-04-11 13:29:06

回答

5

因爲它只是你應該能夠return從它具有相同效果的函數:

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

這就是我在想什麼,雖然上面的代碼有點奇怪 - else語句永遠不會被觸及,在這種情況下,一個簡單的if/else就足夠了,並且不可能需要「繼續」類型的流控制。 – Reid 2012-04-11 13:27:12

+0

@Reid - 同意,儘管它可能在更大的代碼片段中更有意義,例如,如果else if中存在另一個代碼分支。 – 2012-04-11 13:31:00

+0

@Justin - 感謝您的回覆。這並沒有完全解決我的問題,但這是我接受的問題的最簡單的解決方案。我應該發佈一個更大的片段。 – TankofVines 2012-04-11 14:00:28

相關問題