비동기식 프로그래밍이 필요한 이유

JavaScript는 단일 스레드 언어이며 네트워크 요청, 파일 읽기 및 쓰기 등의 시간이 걸리는 작업은 비동기적으로 수행해야 합니다. 그렇지 않으면 인터페이스가 끊어집니다.

지옥으로 돌아가는 문제

다중 레이어 네스트된 콜백 코드는 유지 관리하기 어렵습니다.

Promise 삼태

  • pending: 진행 중
  • fulfilled: 성공
  • rejected: 실패
fetch('/api/user').then(res => res.json()).then(data => console.log(data)).catch(err => console.error(err));

async/await 문법사탕

비동기식 코드를 동기식으로 보이도록 ES2017 도입:

async function loadUser() {

병렬 실행

여러 독립 실행형 요청이 Promise.all로 병렬됩니다.

일반 트랩

  • await을 잊어버려서 결과 대신 Promise 객체 가져오기
  • 순환 중 await를 잘못 사용하여 Serial 실행
  • try/catch 누락으로 인한 예외 없음

면책 조항: 본 사이트의 글은 원작, 재게시, AI 생성 등 다양한 출처에서 제공됩니다. 저작권 및 기타 문제가 있는 경우피드백하기로 문의해 주시면 신속하게 확인 후 조치하겠습니다.