javascript - 那么在获取时正确处理错误捕获?

标签 javascript

我只是很困惑什么是正确的方法,我在 react 中获取代码如下:

  fetch(
    `api_url`,
  )
    .then(response => response.json())
    .then(
      successResponse => {
       ...
      },
      errorResponse => {
       ...
      }
    )

或者我应该使用下面这个?我应该把 .catch 放在哪里?

  fetch(
    `api_url`,
  )
    .then(response => response.json())
     // put .catch() here?
    .then(
      successResponse => {
       ...
      }
    )
    .catch(errorResponse => {
      ...
     }
    )

两者有区别吗?我喜欢第一个,这两个捕获错误有不同吗?

最佳答案

如果您担心 response.json() 调用失败,只需在第一个 .then 调用中抛出一个新错误即可。

fetch(`api_url`)
.then((response) => {
  if (response.ok) return response.json()
  else throw new Error(`Could not fetch: ${response}`)
})
.then((successResponse) => {
  ...
})
.catch((errorResponse) => {
  console.log(errorResponse)
})

关于javascript - 那么在获取时正确处理错误捕获?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61109841/

相关文章:

javascript - 如何设置使用 JavaScript 函数添加的文本字符串的样式?

javascript - 如何在 Three.js 中加载 json 对象数组?

javascript - 获取放置的div JQUERY的坐标

javascript - Emscripten 可以将 LLVM 编译为基于 Web 的程序语言的 JavaScript

javascript - 如何使用 highcharts 创建自定义按钮,每个数据按钮为其数据调用另一个 php 脚本

javascript - Typescript/ES6 中单例模式的正确方法是什么?

javascript - 从 JavaScript 的 fetch 中重新读取响应主体

javascript - 等待 ".then"解决

javascript - 更改属性后设置新位置

javascript - 语义 UI、调光器背景颜色