返回介绍

Promsie 方法链

发布于 2025-04-26 18:09:30 字数 1027 浏览 0 评论 0 收藏

Promsie 的特性之一是可以链式调用方法,fetch 也可以使用该特性,同时,使用链式调用,可以让你的请求处理逻辑更加通用。

如果使用的 API 返回 JSON 格式数据,那么针对每次响应,你都需要检查相应状态并做 JSON 格式转换。其实还能简化代码,你可以将状态检测和 JSON 转换的代码放到单独的函数中去,从而可以更专注于处理最终数据和错误情况。

function status(response) {
  if (response.status >= 200 && response.status < 300) {
    return Promise.resolve(response)
  } else {
    return Promise.reject(new Error(response.statusText))
  }
}
function json(response) {
  return response.json()
}

fetch('users.json')
  .then(status)
  .then(json)
  .then(function(data) {
    console.log('Request succeeded with JSON response', data);
  }).catch(function(error) {
    console.log('Request failed', error);
  });

在上面的代码中,我们定义了一个 status 方法来检查 response.status 的状态,根据结果不同返回 Promise.resolve() 或 Promise.reject(),这是 fetch() 方法链中的第一个方法调用。如果返回 resolve 状态,我们会继续调用 json(),从而返回 response.json() 的执行结果。经过这些处理,我们已经可以获得解析后的 JSON 对象。如果解析失败,Promise 返回 reject 状态,执行 catch 里的代码进行错误处理。

这么编码更大的好处在于,你可以在所有的 fetch 请求中使用上面的逻辑代码,从而让代码变得更加容易阅读、维护和测试。

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。