Promise, Async & Await

jjj·2022년 7월 10일
0

Promise

함수의 리턴으로 다시 함수를 호출하는 경우가 계속되는 일명 콜백지옥으로부터 가독성을 높이기 위해 사용하는 것이다. 처음에는 status가 pending 상태에 있다가 resolve가 호출되면 fulfilled, reject가 호출되면 rejected가 된다. 자세한 설명은 유튜브 참고

Async / Await

  • 최근에 나온 비동기 처리 패턴
  • JavaScript는 single thread 기반 언어이기 때문에 메인스레드가 멈추지 않고 계속 진행하기 위해 비동기 처리가 필수이다. 그러나 비동기 처리 결과는 예측할 수 없기 때문에 callback이나 promise와 같은 동기식 처리가 필요한데, 이런 기존 동기식 처리의 단점을 보완하고 가독성을 높이기 위해 asyncawait을 활용한다. 3
  • 둘 다 Promise를 반환한다.
  • await 키워드로 대기중인 Promise는 비동기식으로 처리되지만 함수 내부는 동기식 흐름을 갖는다.1

Async

  • 함수 앞에 async 키워드를 붙이면 해당 함수가 반환하는 값은 항상 Promise가 된다. 1

Await

  • Async 함수 안에서만 사용할 수 있다
  • 일반적으로 Axios와 같이 promise를 반환하는 API를 호출한다. 2
  • Promise가 처리될 때까지 다음 코드를 실행하지 않고 기다린다.

Exception handling

  • 예외처리의 경우 Promise와 달리 try/catch 구문을 사용한다.

Reference


  1. https://velog.io/@jaeung5169/asyncawait

  2. https://velog.io/@sunhee5951/asyncawait

  3. https://devlog-wjdrbs96.tistory.com/163

0개의 댓글