비동기식 프로그래밍이 필요한 이유
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 생성 등 다양한 출처에서 제공됩니다. 저작권 및 기타 문제가 있는 경우피드백하기로 문의해 주시면 신속하게 확인 후 조치하겠습니다.
