throw if async callback is executed twice.
This commit is contained in:
parent
99f927665a
commit
786aed49dd
@ -1426,8 +1426,8 @@ utils.ccmp = function(a, b) {
|
||||
var res = 0;
|
||||
var i;
|
||||
|
||||
assert(Buffer.isBuffer(a));
|
||||
assert(Buffer.isBuffer(b));
|
||||
utils.assert(Buffer.isBuffer(a));
|
||||
utils.assert(Buffer.isBuffer(b));
|
||||
|
||||
if (a.length !== b.length)
|
||||
return false;
|
||||
@ -1448,6 +1448,7 @@ utils.forRange = function forRange(from, to, iter, callback) {
|
||||
return callback();
|
||||
|
||||
function next(err) {
|
||||
utils.assert(pending > 0);
|
||||
if (err)
|
||||
error = err;
|
||||
if (!--pending)
|
||||
@ -1468,6 +1469,7 @@ utils.forEach = function forEach(arr, iter, callback) {
|
||||
return callback();
|
||||
|
||||
function next(err) {
|
||||
utils.assert(pending > 0);
|
||||
if (err)
|
||||
error = err;
|
||||
if (!--pending)
|
||||
@ -1480,13 +1482,20 @@ utils.forEach = function forEach(arr, iter, callback) {
|
||||
};
|
||||
|
||||
utils.forRangeSerial = function forRangeSerial(from, to, iter, callback) {
|
||||
var called = false;
|
||||
|
||||
callback = utils.asyncify(callback);
|
||||
|
||||
(function next(err) {
|
||||
if (err)
|
||||
utils.assert(!called);
|
||||
if (err) {
|
||||
called = true;
|
||||
return callback(err);
|
||||
if (from >= to)
|
||||
}
|
||||
if (from >= to) {
|
||||
called = true;
|
||||
return callback();
|
||||
}
|
||||
from++;
|
||||
utils.nextTick(function() {
|
||||
iter(from - 1, next, from - 1);
|
||||
@ -1496,15 +1505,21 @@ utils.forRangeSerial = function forRangeSerial(from, to, iter, callback) {
|
||||
|
||||
utils.forEachSerial = function forEachSerial(arr, iter, callback) {
|
||||
var i = 0;
|
||||
var called = false;
|
||||
|
||||
callback = utils.asyncify(callback);
|
||||
|
||||
(function next(err) {
|
||||
var item;
|
||||
if (err)
|
||||
utils.assert(!called);
|
||||
if (err) {
|
||||
called = true;
|
||||
return callback(err);
|
||||
if (i >= arr.length)
|
||||
}
|
||||
if (i >= arr.length) {
|
||||
called = true;
|
||||
return callback();
|
||||
}
|
||||
item = arr[i];
|
||||
i++;
|
||||
utils.nextTick(function() {
|
||||
@ -1524,6 +1539,7 @@ utils.every = function every(arr, iter, callback) {
|
||||
return callback(null, result);
|
||||
|
||||
function next(err, res) {
|
||||
utils.assert(pending > 0);
|
||||
if (err)
|
||||
error = err;
|
||||
if (!res)
|
||||
@ -1542,17 +1558,25 @@ utils.every = function every(arr, iter, callback) {
|
||||
|
||||
utils.everySerial = function everySerial(arr, iter, callback) {
|
||||
var i = 0;
|
||||
var called = false;
|
||||
|
||||
callback = utils.asyncify(callback);
|
||||
|
||||
(function next(err, res) {
|
||||
var item;
|
||||
if (err)
|
||||
utils.assert(!called);
|
||||
if (err) {
|
||||
called = true;
|
||||
return callback(err);
|
||||
if (!result)
|
||||
}
|
||||
if (!result) {
|
||||
called = true;
|
||||
return callback(null, false);
|
||||
if (i >= arr.length)
|
||||
}
|
||||
if (i >= arr.length) {
|
||||
called = true;
|
||||
return callback(null, true);
|
||||
}
|
||||
item = arr[i];
|
||||
i++;
|
||||
utils.nextTick(function() {
|
||||
|
||||
Loading…
Reference in New Issue
Block a user