XHR에서 fetch로
콜백 중심 흐름을 Promise 기반 흐름으로 바꾸어 요청과 후속 처리를 조합하기 쉽게 만듭니다.
비동기fetch는 XMLHttpRequest보다 간결하지만, 네트워크 실패와 HTTP 오류를 같은 방식으로 처리하지 않습니다. 요청 옵션, 응답 상태, 본문 파싱, 취소와 인증 옵션을 단계별로 분리해야 실제 앱에서 안전합니다.
콜백 중심 흐름을 Promise 기반 흐름으로 바꾸어 요청과 후속 처리를 조합하기 쉽게 만듭니다.
비동기GET과 POST의 body 처리, JSON Content-Type, 쿠키 포함 여부를 명시해야 서버 계약과 맞습니다.
RequestInit404나 500은 Promise reject가 아니라 정상 응답 객체이므로 response.ok를 직접 검사합니다.
상태 코드AbortController, CORS 정책, credentials 옵션을 UI 수명 주기와 보안 요구에 맞춰 둡니다.
실전 경계const response = await fetch('/api/users');
if (!response.ok) {
throw new Error(`HTTP ${response.status}`);
}
const users = await response.json();