브라우저 fetch() 호출 간소화
8400 단어 javascript
따라서 가져오기 코드를 수백 번 작성한 후 조금 단순화할 때라고 결정했습니다.
그래서 이것 대신에:
try {
const response = await fetch('https://example.com')
// ok is true only for 200-299 response codes
if (response.ok) {
const data = await response.json()
} else {
throw response
}
} catch (e) {
console.log(e)
}
나는 이것을 할 수 있다:
import fetch from 'nice-fetch'
try {
const [data, response] = await fetch('https://example.com')
} catch (e) {
console.log(e)
}
작은 개선 사항을 알고 있지만 시간이 지남에 따라 추가됩니다. :)
용법
nice-fetch
는 일반fetch과 동일한 인수를 허용하며 반환될 것으로 예상되는 응답의 본문type
인 추가 인수가 하나 더 있습니다. 기본값은 json
입니다. 이는 응답 본문 내용을 처리하는 방법을 결정합니다.// if (response.ok)
const data = await response.json() // <- json is the default
// } else {
다른 매개변수는 모두 Body mixin에서 사용 가능한 방법입니다.
예를 들어:
import fetch from 'nice-fetch'
// data is JSON (default)
const [data, response] = await fetch('https://example.com')
// data is JSON
const [data, response] = await fetch(
'https://example.com',
{ method: 'GET' },
'json' // <- explicit
)
// data is Blob
const [data, response] = await fetch(
'https://example.com',
{ method: 'GET' },
'blob'
)
// data is string
const [data, response] = await fetch(
'https://example.com',
undefined // <-- pass undefined for RequestInit
'text'
)
반환 값
이 함수는 이미 처리된 응답 내용(
data
호출이 필요 없음) 및 원본 response.json()
개체를 처리한 response
튜플을 반환합니다.오류 처리
이와 같이 코드를 작성하면 모든 오류를
catch
블록에서 처리할 수 있습니다.try {
const [data, response] = await fetch('https://example.com')
} catch (e) {
console.log(e)
}
response.ok
가 true가 아닌 경우(상태가 200-299 범위에 없음) fetch
전체 Response
object와 함께 throw됩니다.응답 본문 내용을 제대로 처리할 수 없는 경우. 잘못된 JSON, 함수는 오류를 다시 발생시킵니다.
fetch
호출 자체에 오류가 있는 경우( 네트워크 요청 실패, 시간 초과) 함수도 해당 오류를 다시 발생시킵니다.다음을 사용하여 설치할 수 있습니다.
npm i nice-fetch
저장소: nice-fetch
유용하게 사용하시기 바랍니다.
Reference
이 문제에 관하여(브라우저 fetch() 호출 간소화), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/ivandotv/simplify-your-browser-fetch-calls-15bp텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)