본 자료는 박규하 코치님과 Elice 플랫폼의 자료를 사용하여 정리하였습니다.
비동기 동작
- 순차적으로 실행되지 않는 코드를 비동기 동작이라고 한다.
- 타이머 또는 API를 호출하는 경우
setTimeout()
일정시간이 지난 후 콜백함수를 실행
setInterval()
일정간격으로 콜백함수를 실행
Promise
비동기 처리를 위한 객체
async / await
항상 Promise를 만환 / Promise가 결과를 반환할때까지 함수의 실행을 일시정지
- node.js의 경우 파일처리 API, 암호화 API등을 제공한다.
이벤트 루프
- call stack => web APIs => callback Queue
- call stack
- web APIs
- callback Queue
- 비동기 처리모델
- 비동기 코드를 처리하는 모듈은 자바스크립트 엔진 외부에 있다.
- 이벤트 루프(event loop), 태스크 큐(task queue), 잡 큐(job queue)등으로 구성된다.
- API 모듈은 비동기요청을 처리 후 태스크 큐에 콜백함수를 넣는다.
- 자바스크립트 엔진은 콜 스택이 비워지면, 태스크 큐의 콜백함수를 실행한다.