npm 包 bluebird-retry 使用教程

阅读时长 4 分钟读完

介绍

bluebird-retry 是一个基于 bluebird 实现的、用于实现异步重试逻辑的 npm 包。它提供了各种参数配置,使得开发者可以自定义重试次数、间隔时间及相关回调函数。

安装

使用

基本使用

以下是一个简单的示例代码:

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

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

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

在上面的示例中,我们使用 retry 函数包裹了 getRemoteData 函数,并传入了一个配置对象,其中 max_tries 参数指定最大重试次数为 3 次。当 getRemoteData 函数返回的 Promise 被拒绝时,retry 函数会根据配置进行相应的重试操作。如果重试次数达到最大限制仍然未成功,则 retry 函数将返回失败状态。

配置项

bluebird-retry 支持以下配置项:

  • max_tries:最大重试次数,默认值为 10。
  • interval:每次重试的间隔时间,可以是一个数字或者一个回调函数。如果是数字,则表示固定间隔时间;如果是回调函数,则该函数将接收一个参数 tryCount,表示当前重试次数(从 1 开始),并返回一个数字,表示当前重试的间隔时间。默认值为 0。
  • backoff:重试间隔时间的增长率,可以是一个数字或者一个回调函数。如果是数字,则表示每次重试间隔时间都会乘以该数字;如果是回调函数,则该函数将接收一个参数 tryCount,表示当前重试次数,并返回一个数字,表示每次重试间隔时间需要乘以的系数。默认值为 1。
  • predicate:用于判断是否需要进行重试的回调函数。该函数将接收一个 Error 对象作为参数,并返回一个布尔值,表示是否需要进行重试。默认值为 (error) => false

自定义间隔时间和重试次数

以下示例代码演示了如何自定义重试次数和间隔时间:

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

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

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

在上面的示例中,我们自定义了最大重试次数为 5 次,每次重试的间隔时间逐渐增加 1 秒。

自定义重试条件

以下示例代码演示了如何自定义重试条件:

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

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

- ----------------------------------------------------------- --------
----------------------------------------------------------------------------------
纠错
反馈