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 res = 0;
|
||||||
var i;
|
var i;
|
||||||
|
|
||||||
assert(Buffer.isBuffer(a));
|
utils.assert(Buffer.isBuffer(a));
|
||||||
assert(Buffer.isBuffer(b));
|
utils.assert(Buffer.isBuffer(b));
|
||||||
|
|
||||||
if (a.length !== b.length)
|
if (a.length !== b.length)
|
||||||
return false;
|
return false;
|
||||||
@ -1448,6 +1448,7 @@ utils.forRange = function forRange(from, to, iter, callback) {
|
|||||||
return callback();
|
return callback();
|
||||||
|
|
||||||
function next(err) {
|
function next(err) {
|
||||||
|
utils.assert(pending > 0);
|
||||||
if (err)
|
if (err)
|
||||||
error = err;
|
error = err;
|
||||||
if (!--pending)
|
if (!--pending)
|
||||||
@ -1468,6 +1469,7 @@ utils.forEach = function forEach(arr, iter, callback) {
|
|||||||
return callback();
|
return callback();
|
||||||
|
|
||||||
function next(err) {
|
function next(err) {
|
||||||
|
utils.assert(pending > 0);
|
||||||
if (err)
|
if (err)
|
||||||
error = err;
|
error = err;
|
||||||
if (!--pending)
|
if (!--pending)
|
||||||
@ -1480,13 +1482,20 @@ utils.forEach = function forEach(arr, iter, callback) {
|
|||||||
};
|
};
|
||||||
|
|
||||||
utils.forRangeSerial = function forRangeSerial(from, to, iter, callback) {
|
utils.forRangeSerial = function forRangeSerial(from, to, iter, callback) {
|
||||||
|
var called = false;
|
||||||
|
|
||||||
callback = utils.asyncify(callback);
|
callback = utils.asyncify(callback);
|
||||||
|
|
||||||
(function next(err) {
|
(function next(err) {
|
||||||
if (err)
|
utils.assert(!called);
|
||||||
|
if (err) {
|
||||||
|
called = true;
|
||||||
return callback(err);
|
return callback(err);
|
||||||
if (from >= to)
|
}
|
||||||
|
if (from >= to) {
|
||||||
|
called = true;
|
||||||
return callback();
|
return callback();
|
||||||
|
}
|
||||||
from++;
|
from++;
|
||||||
utils.nextTick(function() {
|
utils.nextTick(function() {
|
||||||
iter(from - 1, next, from - 1);
|
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) {
|
utils.forEachSerial = function forEachSerial(arr, iter, callback) {
|
||||||
var i = 0;
|
var i = 0;
|
||||||
|
var called = false;
|
||||||
|
|
||||||
callback = utils.asyncify(callback);
|
callback = utils.asyncify(callback);
|
||||||
|
|
||||||
(function next(err) {
|
(function next(err) {
|
||||||
var item;
|
var item;
|
||||||
if (err)
|
utils.assert(!called);
|
||||||
|
if (err) {
|
||||||
|
called = true;
|
||||||
return callback(err);
|
return callback(err);
|
||||||
if (i >= arr.length)
|
}
|
||||||
|
if (i >= arr.length) {
|
||||||
|
called = true;
|
||||||
return callback();
|
return callback();
|
||||||
|
}
|
||||||
item = arr[i];
|
item = arr[i];
|
||||||
i++;
|
i++;
|
||||||
utils.nextTick(function() {
|
utils.nextTick(function() {
|
||||||
@ -1524,6 +1539,7 @@ utils.every = function every(arr, iter, callback) {
|
|||||||
return callback(null, result);
|
return callback(null, result);
|
||||||
|
|
||||||
function next(err, res) {
|
function next(err, res) {
|
||||||
|
utils.assert(pending > 0);
|
||||||
if (err)
|
if (err)
|
||||||
error = err;
|
error = err;
|
||||||
if (!res)
|
if (!res)
|
||||||
@ -1542,17 +1558,25 @@ utils.every = function every(arr, iter, callback) {
|
|||||||
|
|
||||||
utils.everySerial = function everySerial(arr, iter, callback) {
|
utils.everySerial = function everySerial(arr, iter, callback) {
|
||||||
var i = 0;
|
var i = 0;
|
||||||
|
var called = false;
|
||||||
|
|
||||||
callback = utils.asyncify(callback);
|
callback = utils.asyncify(callback);
|
||||||
|
|
||||||
(function next(err, res) {
|
(function next(err, res) {
|
||||||
var item;
|
var item;
|
||||||
if (err)
|
utils.assert(!called);
|
||||||
|
if (err) {
|
||||||
|
called = true;
|
||||||
return callback(err);
|
return callback(err);
|
||||||
if (!result)
|
}
|
||||||
|
if (!result) {
|
||||||
|
called = true;
|
||||||
return callback(null, false);
|
return callback(null, false);
|
||||||
if (i >= arr.length)
|
}
|
||||||
|
if (i >= arr.length) {
|
||||||
|
called = true;
|
||||||
return callback(null, true);
|
return callback(null, true);
|
||||||
|
}
|
||||||
item = arr[i];
|
item = arr[i];
|
||||||
i++;
|
i++;
|
||||||
utils.nextTick(function() {
|
utils.nextTick(function() {
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user