summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGraeme Yeates <yeatesgraeme@gmail.com>2016-07-12 11:11:25 -0400
committerGraeme Yeates <yeatesgraeme@gmail.com>2016-07-12 11:15:53 -0400
commit4bf860be31f6ece479df63316db3c2b0cbc97739 (patch)
tree03364bd3306a4aae8fe58457310481e6eb3b531d
parentdb8a73799213299bfc5880dea68a15c3f187a9cc (diff)
downloadasync-4bf860be31f6ece479df63316db3c2b0cbc97739.tar.gz
Retry passes all arguments to callback
-rw-r--r--lib/retry.js4
-rw-r--r--mocha_test/retry.js13
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();
+ }));
+ });
});