본문으로 건너뛰기

toResponse()

함수 시그니처

toResponse: () => Promise<Response>

설명

현재 빌더에 구성된 URL과 RequestInit으로 fetch() 요청을 실행하고, 네이티브 Response 객체를 반환합니다.

응답 body를 직접 처리하거나 status, headers 등의 응답 정보를 확인해야 할 때 사용합니다.

toResponse() 자체는 새로운 RequestInit 또는 Header 속성을 추가하지 않습니다. 호출 시점까지 빌더에 설정된 값을 사용하여 요청을 실행합니다.

예제

import { dench, HTTPCache } from 'dench-fetch';

const api = dench('https://api.example.com');

const response = await api
.get('/users/1')
.cache(HTTPCache.NO_CACHE)
.toResponse();

console.log(response.status);
console.log(response.headers.get('Content-Type'));

const user = await response.json();

실행되는 요청의 RequestInit은 다음과 같습니다.

{
method: 'GET',
cache: 'no-cache',
}

반환값은 다음 네이티브 객체입니다.

Promise<Response>

주의사항

  • toResponse()를 호출하는 순간 실제 네트워크 요청이 실행됩니다.
  • 응답의 okfalse이면 Response를 반환하지 않고 오류를 던집니다.
  • 반환된 Response의 body는 일반적으로 한 번만 소비할 수 있습니다. 여러 방식으로 읽어야 한다면 response.clone()을 사용하세요.
  • 같은 빌더에서 실행 메서드를 여러 번 호출하면 호출할 때마다 새로운 요청이 실행됩니다.