requestretry: delayStrategy property added to RequestRetryOptions. (#42300)

This commit is contained in:
Aram Elchyan
2020-02-19 15:53:34 -08:00
committed by GitHub
parent 0498177e3d
commit da50bddaa2
2 changed files with 20 additions and 0 deletions
+3
View File
@@ -3,6 +3,7 @@
// Definitions by: Eric Byers <https://github.com/EricByers>
// Andrew Throener <https://github.com/trainerbill>
// Aniket Patel <https://github.com/baaka-ani>
// Aram Elchyan <https://github.com/elch-yan>
// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped
// TypeScript Version: 2.3
@@ -13,6 +14,7 @@ import http = require('http');
declare namespace requestretry {
type RetryStrategy = (err: Error, response: http.IncomingMessage, body: any) => boolean;
type DelayStrategy = (err: Error, response: http.IncomingMessage, body: any) => number;
interface RequestPromise extends request.Request {
then: Promise<any>["then"];
catch: Promise<any>["catch"];
@@ -31,6 +33,7 @@ declare namespace requestretry {
promiseFactory?(resolver: any): any;
retryDelay?: number;
retryStrategy?: RetryStrategy;
delayStrategy?: DelayStrategy;
fullResponse?: boolean;
}
}
+17
View File
@@ -81,6 +81,23 @@ request({
// Body.
});
const CustomDelayStrategy = (err: Error, response: http.IncomingMessage, body: any): number => {
// Return a number
return 100;
};
request({
url: 'https://api.example.com/v1/a/b',
json: true,
// The below parameters are specific to request-retry
// (default) try 5 times
maxAttempts: 5,
// (default) wait for 5s before trying again
delayStrategy: CustomDelayStrategy,
}, (err, response, body) => {
// Body.
});
// No options required
request({
url: 'https://api.example.com/v1/a/b',