프로그래밍/Javascript

callback 함수에서 전역변수로 값을 못불러옴

2018. 5. 18. 00:06


해당 소스가 있다. 해당 소스를 실행해보면 당연히 console.log(); 에 출력되는 값이 undefined 이다. 


이유는 nodejs 가 속도 향상을 위해서 비동기 실행을 사용하기 때문이다. 비동기 실행은 함수들을 순서대로 실행하지 않고 한 함수가 실행되고 있는 중에도 뒤의 다른 함수를 실행할 수 있다는 개념이다. 따라서 globalVar에는 정상적으로 arg 라는 값이 들어가긴 하지만, console.log() 함수가 더 먼저 실행되기 때문에 globalVar를 출력하면 undefined 가 뜨는 것이다. 


 따라서, 우리는 이러한 현상을 해결하기 위해서 Promise 혹은 async await 라는 개념을 도입할 필요가 있다.