2013-10-12 2 views
0

node.js에서 여러 콜백에 걸쳐 일부 데이터를 수집하여 하나의 객체에 저장해야합니다. 다음 코드를 시도했지만 수집 된 데이터는 초기화 된 변수에 저장되지 않습니다. 내가 잘못하고있는 일을 도와 줄 수 있니?콜백에서 javascript 부모 변수 업데이트

내 코드 : 콜백 함수를 실행하기 전에

for (var x in data) { 
    var status = {items: []}; 

    for (var y in x) { 
     do_something(y, function (err, res) { 
      again_do_something(res, function(err, result) { 
       status.items.push({key: result}); 
      }); 
     }); 
    } 

    console.log(status); //Here I got only {items: []} 
} 

답변

3
console.log(status); 

실행하기됩니다. 그게 왜 비어있는 걸보고있는거야.

이 일반적인 문제를 해결하는 쉬운 방법 중 하나는 async library's concat method입니다.

+0

감사! 나는 그것을 놓쳤다. 그런데 수집 된 데이터를 전달할 수 있도록 마지막 콜백이 실행 된 시점을 어떻게 추적 할 수 있습니까? – filo891

+0

@ filo891 비동기 라이브러리 솔루션으로 내 대답이 업데이트되었습니다. 확인해주십시오. – thefourtheye

관련 문제