Skip to content

Commit 652a239

Browse files
committed
Merge pull request #146 from sindresorhus/pass-err-to-retries
Pass error to retries option
2 parents a34c96f + 59aa1d3 commit 652a239

File tree

3 files changed

+13
-2
lines changed

3 files changed

+13
-2
lines changed

index.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,7 @@ function requestAsEventEmitter(opts) {
5656
});
5757

5858
req.once('error', function (err) {
59-
var backoff = opts.retries(++retryCount);
59+
var backoff = opts.retries(++retryCount, err);
6060
if (backoff) {
6161
setTimeout(get, backoff, opts);
6262
return;

readme.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -123,7 +123,7 @@ Default: `5`
123123

124124
Number of request retries when network errors happens. Delays between retries counts with function `Math.pow(2, retry) + Math.random() * 100`, where `retry` is attempt number (starts from 0).
125125

126-
Option accepts `function` with `retry` argument that must return delay in milliseconds (`0` return value cancels retry).
126+
Option accepts `function` with `retry` and `error` arguments. Function must return delay in milliseconds (`0` return value cancels retry).
127127

128128
##### callback(error, data, response)
129129

test/retry.js

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -58,6 +58,17 @@ test('falsy value prevent retries', async t => {
5858
}
5959
});
6060

61+
test('falsy value prevent retries', async t => {
62+
try {
63+
await got(`${s.url}/long`, {timeout: 100, retries: (iter, err) => {
64+
t.ok(err);
65+
return false;
66+
}});
67+
} catch (err) {
68+
t.ok(err);
69+
}
70+
});
71+
6172
test.after('cleanup', async t => {
6273
await s.close();
6374
});

0 commit comments

Comments
 (0)