npm 包 ensure-request 使用教程

阅读时长 5 分钟读完

在前端开发过程中,我们经常会面临一个问题,例如:发送 ajax 请求时,如果服务器没有正确的响应,那么我们需要去处理和修复。为了解决这个问题,我们可以使用 ensure-request 这个 npm 包,确保请求在合理的时间内完成,如果不成功就重试。

本文将会介绍 ensure-request 包的使用方式、参数设置、以及在实际项目中如何应用。

什么是 ensure-request?

ensure-request 是一个基于 Axios 的拦截器,能够确保你的请求在合理的时间内完成,如果不成功就可以自动重试。其灵活的设置选项,可以让你轻松地适应各种应用场景。同时, ensure-request 包还支持拦截任何基于 axios 的请求,所以很方便的和项目对接使用。

安装

在工程目录下运行以下命令,进行安装。

基本用法

以下是一个最基本的使用示例:

-- -------------------- ---- -------
------ ------------- ---- -----------------

----- ------------ - ----- -- --------------------- -------

---------------
  ---- -------------------------
  ------- ------
  -------- --
  ----------- ---- -- --
---------------- -- -
  ------------------------ ----------
-----------------------

这里我们发起了一个 GET 请求,如果请求失败会自动重试 2 次,每次重试之间的延迟为 1 秒。

进阶用法

在实际应用中,可能会碰到更加复杂的场景,例如:需要根据请求返回的数据决定是否进行重试;需要在请求之前进行权限验证等。为了解决这些问题, ensure-request 提供了更加灵活的设置参数,以满足各种需求。

以下是一个使用如何直接通过返回内容判断:

-- -------------------- ---- -------
---------------
  ---- --------------------------------
  ------- ------
  -------- --
  ----------- ----- -- --
  ------------ ----- -- ----- -- -------------- -- --------------------- -- ---
---------------- -- -
  ------------------------ ----------
-----------------------

这里我们仍然发起了一个 GET 请求,但是如果请求状态码为 500 或以上,那么会自动重试。注意:这里的 shouldRetry 参数是一个函数,用于判断是否需要重试。如果返回值为 true,那么将会自动重试,否则将会直接抛出异常。

以下是一个使用如何进行权限验证的示例:

-- -------------------- ---- -------
----- --------- - ----------------

----- ------------ - ----- -- -
  -- --------------- -- --------------------- --- ---- -
    -- ----- --
    ------------------ -------- --- -- ----- -----------
    -- -- ----- -----
    --------- - ---
    -- ----------
    ------ -----------------
      -------- -- -
        ---------------- --- ------- ---------
        ------ -----
      --
      --------- -- -
        ---------------- -- ----- ----- ----------
        ------ ------
      ---
  -

  --------------------- -------
-

---------------
  ---- -------------------------
  ------- ------
  -------- -
    -------------- ------- -------------
  --
  -------- --
  ----------- ----- -- --
  ------------ ------------
---------------- -- -
  ------------------------ ----------
-----------------------

这里我们使用了 headers 参数,将 token 作为认证信息发送给服务器,如果请求出错了,shouldRetry 函数会判断响应状态码是否为 401(通常是 token 失效),然后在处理登录失败的情况后,自动重新登陆并重试请求。

当然,在实际应用中,还会有更加复杂的应用场景,以上都只是一些简单的示例,如果你需要获取更多的示例,请参考 ensure-request官方文档

总结

ensure-request 是一个非常实用的工具包,特别是在工作中频繁要求前端同学通过 ajax 与后端交互数据的时候,该工具包能够很好的为我们解决一些在 ajax 数据请求时出现的问题。希望本文的介绍可以帮助你更好的使用该包。

来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/60066e26a563576b7b1ecfb9

纠错
反馈