2013-01-07 2 views
1
for(var i=0;i<50;i++) { 
     functionWrappingAsycfuncs(i) 
} 

var nums = [0,1...50] 
nums.forEach(functionWrappingAsyncfuns) 

functionWrappingAsycfuncs(i){ 
    readFileAsync(i,function(){ 
    console.log(i); 
    }); 
} 

위의 함수에서 for 루프에서 실행하는 데 필요한 예상되는 특성은 50 50x 로깅입니까? 그러나 foreach로 로그 않는 1 2 3 ....Node.JS : forEach와 for 루프 비동기 성

이 두 가지 구현은 첫 번째 함수는 PARAMS로 50 0 모든 비동기 함수를 호출하지만 정말 기다리지 않습니다 정말 다른 작업을 동일 보이지만 않습니다 완료 콜백

두 번째 (내 프로젝트 중 하나) 콜백을 기다리는 배열의 다음 항목을 진행하는 것?

둘 다 동일합니까?

답변

3

49 개 대신 50 개가 아닌 기능적으로 동일합니다. 둘 다 다음 반복을 계속하기 전에 콜백을 대기하지 않으며, 두 경우 모두 각각의 호출은 로컬 매개 변수로 현재 0 ... 49 값을 functionWrappingAsycfuncs으로 캡처하므로 모두 0 1 2 3 ...