retry-as-promised

Retry a failed promise

MIT 25 个版本
安装
npm install retry-as-promised
yarn add retry-as-promised
pnpm add retry-as-promised
bun add retry-as-promised
README

retry-as-promised

Retry promises when they fail

Installation

$ npm install --save retry-as-promised
$ yarn add retry-as-promised

Configuration

var retry = require('retry-as-promised').default;

var warningFn = function(msg){ someLoggingFunction(msg, 'notice'); };

// Will call the until max retries or the promise is resolved.
return retry(function (options) {
  // options.current, times callback has been called including this call
  return promise;
}, {
  max: 3, // maximum amount of tries
  timeout: 10000 // throw if no response or error within millisecond timeout, default: undefined,
  match: [ // Must match error signature (ala bluebird catch) to continue
    Sequelize.ConnectionError,
    'SQLITE_BUSY'
  ],
  backoffBase: 1000 // Initial backoff duration in ms. Default: 100,
  backoffExponent: 1.5 // Exponent to increase backoff each try. Default: 1.1
  backoffJitter: 150 // Amount of randomized jitter in ms to add to retry interval to spread retries out over time. Default: 0.0.
  report: warningFn, // the function used for reporting; must have a (string, object) argument signature, where string is the message that will passed in by retry-as-promised, and the object will be this configuration object + the $current property
  name:  'SourceX' // if user supplies string, it will be used when composing error/reporting messages; else if retry gets a callback, uses callback name in erroring/reporting; else (default) uses literal string 'unknown'
});

Tested with

  • Bluebird
  • Q
版本列表
7.1.1 2025-02-27
7.1.0 2025-02-25
7.0.4 2023-02-07
7.0.3 2022-12-08
7.0.2 2022-12-08
7.0.1 2022-12-06
7.0.0 2022-12-06
6.1.0 2022-09-02
6.0.0 2022-06-24
5.0.0 2021-12-17
4.0.0 2021-09-07
3.2.0 2019-03-07
3.1.0 2018-10-23
3.0.0 2018-06-04
2.3.2 2017-10-30
2.3.1 2017-09-21
2.3.0 2017-08-01
2.2.0 2016-10-28
2.1.0 2016-10-14
2.0.1 2016-02-02
2.0.0 2015-12-03
1.1.0 2015-06-11
1.0.1 2015-06-03
1.0.0 2015-06-03
0.0.1 2015-06-02