2014-06-19 4 views
0

저는 Node.js를 처음 사용합니다. Node.js에 대해 좋아하는 것 중 하나는 비동기 성격입니다. 그러나 현재로서는 동기 작업이 필요합니다. 그 이유는 인데 비동기 모듈을 살펴 봤습니다. 그러나, 나는 아직도 내가하려고하는 것을 이해할 수 없다.node.js의 async.series 사용

2 개의 정적 연산과 다양한 연산을 순차적으로 실행하려고합니다. 모든 작업이 완료되면 나는 뭔가를하고 싶다. 즉, psedo 코드에서, 내가 할 노력하고있어 :

var total = getValue(); 

executeOperation1(); 
executeOperation2(); 
for (var i=0; i<total; i++) { 
    executeOperationX(i); 
} 
doCompletionOperation(); 

내 주요 작업의 각 (executeOperation1(), executeOperation2() 및 executeOperationX (...))는 비동기 적으로 실행됩니다. 내 이해에서, 나는 async.series를 사용해야합니다. 그러나, 나는 이것이 구문 적으로 어떻게 생겼는지 확신하지 못한다. 누군가 이걸하는 방법을 보여줄 수 있습니까?

감사합니다.

답변

0

비동기 기능을 사용하려면 콜백이 필요합니다. async.series는 다음과 같습니다.

getValue(function(value){ 
    var total = value; 
    async.series([ 
     function(callback){ 
      executeOperation1(function(){ 
       callback(); 
      }); 
     },function(callback){ 
      executeOperation2(function(){ 
       callback(); 
      }); 
     },function(callback){ 
       for(var i=0;i<total;i++){   
       executeOperationX(i); 
       } 
     }],function(){ 
       doCompletionOperation(); 
     }); 
    }); 
+0

감사합니다. 그러나 함수에 전달되는 '콜백'매개 변수의 출처를 이해하지 못합니다. 그걸 제게 설명해 주시겠습니까? – user3284007

+2

'async'가 전달합니다. 'async.series'를 호출 할 때, 콜백을 매개 변수로 기대하는 함수 목록을 제공 할 것임을 알게됩니다. 이 콜백은 콜백을 전달합니다. 콜백은 함수가 완료되었다는 것을 알려주고 다음 함수로 진행할 수 있기 때문입니다. 제공된 콜백에 오류를 전달하면 배열의 이후 함수를 건너 뛰고 오류가 발생한 모든 부분을 처리 할 수있는 가장 마지막 함수 인 A-0- 목록으로 직접 이동합니다. – juanpaco