🎃

JavaScript fetchでレスポンスがnullの場合json()をどうハンドリングするか

2024/02/05に公開

json() メソッドでnullは直接利用できないので、text() メソッドなどを利用して調べる必要がある
また、responseは一回フェッチするとTypeErrorが発生してしまうので clone() メソッドを利用する必要がある
https://developer.mozilla.org/ja/docs/Web/API/Response/clone

async function request() {
  const response = await fetch('/null')
  if (!response.ok) {
    throw new Error('status error')
  }
  const text = await response.clone().text()
  if (text.length === 0) {
    return null
  }
  return response.json()
}

Discussion