2013-10-02 3 views
2

여러 가지 대안을 조사하고 그 중 첫 번째가 성공적 일 때 멈추는 방법을 선택하는 데는 의문의 여지가 있습니다. 예를 들어async.js - probing을위한 올바른 방법

:

async.probeSeries([ 
    function (callback) { 
     // try something and call callback 
     // without arguments - probing fails 
     callback(); 
    }, 
    function (callback) { 
     // try something and call callback 
     // with arguments - probing successful 
     callback(null, ok); 
    }, 
    function (callback) { 
     // will be not executed, because 
     // the second one is successful 
     callback(); 
    } 
], function (err, result) { 
    // handle the result returned by the second probe 
}); 

나는 series를 사용하여 오류 방법으로 결과를 반환하면 해결 될 수 있다고 생각하지만, 더 좋은 방법은 무엇입니까?

+2

내가'async.series' 솔루션은 잘 될 것이라고 생각 쓸 수 있지만이었다 코드가 발생할 것 Q, 같은 약속 라이브러리에 대한 완벽한 유스 케이스처럼 보인다 읽기가 힘들다. 대체 함수를 배열에 넣고'async.doWhilst()'를 사용하는 것은 어떻습니까? –

+0

배열의 함수에 대한 힌트를 가져 주셔서 감사합니다. 아마 모든 함수를 배열에 넣은 다음 detect를 호출 할 것입니다. –

답변

1

아마도 detectSeries을 찾고 계십니까? 귀하의 예제와 다른 작은 비트로 작동합니다. 동일한 함수를 가진 배열의 값을 확인한 다음이 값 중 하나를 콜백하지만 문제에 적용 할 수는 있습니다.

, BTW 이것은 당신이

probe1().fail(probe2).fail(probe3).done(resulthandler, errhandler);