@4a/retry 中文文档教程

发布于 5年前 浏览 25 项目主页 更新于 3年前

Retry

失败自动重试,可用于http请求重试,或其他需要重试的逻辑

Install

npm i @4a/retry

Usage

// ES6
import Retry from '@4a/retry'

// Nodejs
const Retry = require('@4a/retry)

Example

let i = 0

Retry.delay(300)    // 可选调用 重试间隔300ms,默认300ms,单位ms
    .max(10)        // 可选调用 重试次数10,默认10次防止死循环
    .when(result => result !== 10) // 必须调用 重试条件,符合条件则重试,否则视为成功正常返回
    .repeat(() => { // 支持async函数,支持promise,返回Promise
        i++
        return i
    })
    .then(result => {
        console.log('result:', result)
    })
    .catch(err => {
        // 报错视为失败
        // 最后一次重试如果依然报错,则抛出该错误
        console.error('error:', err)
    })

Simple

let i = 0

Retry
    .when(result => result !== 10)
    .repeat(() => {
        i++
        return i
    })
    .then(result => {
        console.log('result:', result)
    })
    .catch(err => {
        console.error('error:', err)
    })

Axios Request

Retry
    .when(result => result.data.code !== 0)
    .repeat(() => axios(options))
    .then(result => {
        console.log('result:', result)
    })
    .catch(err => {
        console.error('error:', err)
    })


npm test

    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文