diff options
author | Graeme Yeates <yeatesgraeme@gmail.com> | 2016-07-12 11:11:25 -0400 |
---|---|---|
committer | Graeme Yeates <yeatesgraeme@gmail.com> | 2016-07-12 11:15:53 -0400 |
commit | 4bf860be31f6ece479df63316db3c2b0cbc97739 (patch) | |
tree | 03364bd3306a4aae8fe58457310481e6eb3b531d | |
parent | db8a73799213299bfc5880dea68a15c3f187a9cc (diff) | |
download | async-4bf860be31f6ece479df63316db3c2b0cbc97739.tar.gz |
Retry passes all arguments to callback
-rw-r--r-- | lib/retry.js | 4 | ||||
-rw-r--r-- | mocha_test/retry.js | 13 |
2 files changed, 14 insertions, 3 deletions
diff --git a/lib/retry.js b/lib/retry.js index bf0dcf1..8163ad9 100644 --- a/lib/retry.js +++ b/lib/retry.js @@ -109,11 +109,11 @@ export default function retry(opts, task, callback) { var attempt = 1; function retryAttempt() { - task(function(err, result) { + task(function(err) { if (err && attempt++ < options.times) { setTimeout(retryAttempt, options.intervalFunc(attempt)); } else { - callback(err, result); + callback.apply(null, arguments); } }); } diff --git a/mocha_test/retry.js b/mocha_test/retry.js index cc24a29..bed7079 100644 --- a/mocha_test/retry.js +++ b/mocha_test/retry.js @@ -1,6 +1,7 @@ var async = require('../lib'); var expect = require('chai').expect; var assert = require('assert'); +var _ = require('lodash'); describe("retry", function () { @@ -121,7 +122,7 @@ describe("retry", function () { }, 50); }); - it('retry does not precompute the intervals (#1226)',function(done) { + it('retry does not precompute the intervals (#1226)', function(done) { var callTimes = []; function intervalFunc() { callTimes.push(new Date().getTime()); @@ -136,4 +137,14 @@ describe("retry", function () { done(); }); }); + + it('retry passes all resolve arguments to callback', function(done) { + function fn(callback) { + callback(null, 1, 2, 3); // respond with indexed values + } + async.retry(5, fn, _.rest(function(args) { + expect(args).to.be.eql([null, 1, 2, 3]); + done(); + })); + }); }); |