본문 바로가기

Node.js/일반

비동기로 작동하는 node.js의 메소드 원리

node.js의 기본 모듈에는 보통 동기 메소드와 비동기 메소드가 패어로 준비돼 있다.

 

예를 들어 fs 모듈에는 비동기로 readdir이라는 메소드가 있고 readdirSync라는 메소드가 있다.

자바스크립트는 싱글 스레드이기 때문에 만약 서버에서 동기 메소드인 readdirSync를 쓰면

여러 클라이언트의 요청에 대한 응답을 바로바로 보내줄 수 없기 때문에 절대 써서는 안 된다.

 

또한 비동기 메소드의 두 번째 인자에는 콜백 함수가 들어오고 비동기가 완료됐을 때 호출된다.

 

fs.readdir('./', function(err, files) {

    if (err) console.log(err);

    else console.log(files);

});

 

만약 비동기 과정에서 오류가 발생하면 첫 번째 인자에는 오류가 담기고

그렇지 않을 경우에는 err가 null이 되며 두 번째 인자files에 결과값이 담기게 된다.