Q. Async, Await 잘 모르겠어요
Await
await
키워드는 Promise를 반환하는 비동기 함수 앞에 위치하며, 해당 Promise가 이행될 때까지 실행을 일시 중단합니다. 비동기 함수 내용이 실행되면, await
표현식은 해당 Promise의 결과값을 반환하고, 이후에 오는 코드 실행이 재개된다.
즉 ! await
키워드 이후에 오는 코드는 비동기 작업이 완료된 후 실행된다는 점 !
async
가 붙은 함수는 뭔가요 ?
async
키워드를 붙여주면 그 함수가 ‘비동기 작업을 하는 함수’임을 나타낸다.
- async 키워드가 없다면, 일반적인 동기 함수로 간주된다. 따라서 await 키워드를 사용해서 비동기 작업의 완료를 기다리지 않고, 다음 코드가 즉시 실행된다.
async
가 붙은 함수는 무조건 Promise를 return한다.
- await을 사용하기 위해 async는 존재한다. await이 내부에 없는 비동기 함수는 굳이 async 키워드를 붙여주지 않아도 된다.
Q. 비동기 처리 모델이 뭘까요 ?
- 위에 것처럼 병렬적으로 처리되는게 비동기 처리 모델이다.
- 동기로 했을 때에는 프로그램이 일시적으로 멈추거나 느려지는 문제가 발생할 수 있다. 따라서 비동기를 사용하여 다른 작업을 동시에 수행하거나, 프로그램의 응답성을 향상시킬 수 있다.
비동기식 처리 모델로 작동하는 것
- 대부분의 DOM 이벤트
- Timer 함수(setTimeout, setInterval)
- Ajax 요청
Q. Promise 객체가 뭔가요 ?
- ES6에서 도입된 개념