2014-01-06 4 views
1

작동하지 평행 나는 다음과 같은 코드를 가지고 :이 작동하지 않습니다async.js 제대로

   async.parallel({ 
        one: function(callback) { gps_helper.get_gps(PEMSID, conn, start, stop, function(fullResults){ 
         callback(fullResults); 
        }) },  //query for new dataSet 
        two: function(callback) { admin.getTh(function(gpsThresholds){ 
         callback(gpsThresholds); 
        }) } 
       },          
       function(results){ 

        console.log(results); 
        console.log('emitting GPS...'); 
        socket.emit('GPS', {gpsResults: results.one, thresholds: results.two, PEMSID: PEMSID, count: count, length: PEMSToDisplay.length, checked: checked});  
        count++;  
       }); 

, 내 콘솔 results로 콜백 완료 첫 번째 쿼리를 표시합니다. 또한 출력에는 {one: fullResults, two: gpsThresholds} 형식이 없으며 각 함수에서 콜백 값을 표시하는 것입니다.

답변

4

비동기 콜백의 첫 번째 인수는 오류 개체이어야한다, 그래서 모든 것이 괜찮다고하면 정말로, 같은

function(err, results){ 
    console.log(results); 
    console.log('emitting GPS...'); 
    socket.emit('GPS', {gpsResults: results.one, thresholds: results.two, PEMSID: PEMSID, count: count, length: PEMSToDisplay.length, checked: checked});  
    count++;  
}); 

는 등 콜백

callback(null, fullResults); 

간다 null를 반환해야 null을 오류 처리기 async 콜백에 전달하십시오.
정확하게 완료된 방법을 보여주는 documentation의 예가 있습니다.