2012-04-11 1 views
6

node.js async 패키지, 특히 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 
    } 
} 

위에서 'else'내부에서 사용할 수있는 '계속'과 동일한 의미의 항목이 있습니까? 이것은 기술적으로 루프 내부가 아니므로 계속 작동하지 않습니다.

+0

당신이 내부의 'CONTINUE'문에 액세스 할 수없는 이유가있다가 'if/else'와 같은 제어 구조. 너 정확히 뭘 하려구? 왜냐하면 당신의 논리를 검토 할 필요가 있기 때문입니다 ... –

+0

! response.results는 서버에서 속도 제한으로 인해 발생했을 가능성이 큽니다. 현재, 위의 요청이 내부 forEachSeries에있는 콜백()을 반환 할 수 있지만이 접근 방식에는 잠재적 인 데이터 손실이 있습니다. node.js의 forEachSeries에서 계속 될 동등한 것이 있는지 알아 내려고하는 것입니다. true를 return하는 것과 비슷한 뭔가가 각각 jQuery $에서 사용됩니다. – TankofVines

답변

5

그것이 같은 효과를 가지고에서 당신이 return 할 수 있어야합니다 단지 기능이기 때문에 :

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

위의 코드가 조금 이상하지만 - else 문은 결코 충돌하지 않을 것입니다.이 경우 간단한 if/else로 충분하고'continue' 흐름 유형이 필요하지 않습니다 제어. – Reid

+0

@Reid - 큰 코드 스 니펫에서 더 이해할 수 있지만, 예를 들어 'else if'내에 또 다른 코드 분기가있는 경우에는 동의 할 수 있습니다. –

+0

@Justin - 답변 해 주셔서 감사합니다. 이 문제는 완전히 해결되지 않았지만 문제의 가장 간단한 해결책이므로 받아 들였습니다. 큰 스 니펫을 게시해야합니다. – TankofVines

관련 문제