summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
Diffstat (limited to 'lib')
-rw-r--r--lib/async.js9
1 files changed, 4 insertions, 5 deletions
diff --git a/lib/async.js b/lib/async.js
index 06ede14..b8c001b 100644
--- a/lib/async.js
+++ b/lib/async.js
@@ -1255,14 +1255,13 @@
async.applyEachSeries = doSeries(_applyEach);
async.forever = function (fn, callback) {
+ var done = only_once(callback || noop);
+ var task = ensureAsync(fn);
function next(err) {
if (err) {
- if (callback) {
- return callback(err);
- }
- throw err;
+ return done(err);
}
- fn(next);
+ task(next);
}
next();
};