I have made up the following example to test asynchronous callback events in node.js. The fact is that the error is not returning me a parameter. Why is that?
var maxtime = 1000;
var evenDoubler = function(v, callback) {
var waitTime = Math.floor(Math.random() * (maxtime + 1));
if (v%2) {
setTimeout(function() {
callback(new Error("Odd input"));
}, waitTime);
}
else {
setTimeout(function() {
callback(null, v*2, waitTime);
}, waitTime);
}
}
for (i=1;i<=10;i++) {
evenDoubler(i, function (error, result, waitTime) {
if (error){
console.log(error + " by number " + i);
}
else {
console.log("The number is even, and its double is " + result + " (in " + waitTime + " miliseconds).");
}
});
}
the returned output is (why is returning me the values 11 on the odd numbers?)
Error: Odd input by number 11
Error: Odd input by number 11
The number is even, and its double is 20 (in 266 miliseconds).
The number is even, and its double is 12 (in 444 miliseconds).
Error: Odd input by number 11
The number is even, and its double is 4 (in 492 miliseconds).
The number is even, and its double is 16 (in 578 miliseconds).
The number is even, and its double is 8 (in 710 miliseconds).
Error: Odd input by number 11
Error: Odd input by number 11