비동기 요청의 가장 대표적인 사례는 네트워크 요청이다. 네트워크를 통해 이루어지는 요청은 그 형태가 다양하다. 그중에서도 URL으로 요청하는 경우가 가장 많은데 그것을 가능하게 해주는 API가 바로 fetch API이다
fetch()
기본 구문let promise = fetch(url, [options])
url
- 접근하고자 하는 URLoptions
- 선택 매개변수, method나 header등을 지정할 수 있다.
options
에 아무것도 넘기지 않으면 요청은 GET
메서드로 진행되어 url
로부터 콘텐츠가 다운로드 된다.
fetch()
를 호출하면 브라우저는 네트워크 요청을 보내고 프라미스가 반환됩니다. 반환되는 프라미스는 fetch()
를 호출하는 코드에서 사용된다.
서버에서 응답 헤더를 받자마자 fetch
호출 시 반환받은 promise
가 내장 클래스 Response
의 인스턴스와 함께 이행 상태가 된다.
fetch
요청은 두개의 await
호출로 구성된다.let response = await fetch(url, options); // 응답 헤더와 함께 이행됨
let result = await response.json(); // json 본문을 읽음
await
없이도 요청이 가능하다fetch(url, options)
.then(response => response.json())
.then(result => /* 결과 처리 */)```