UNPKG

nodejslearnerfiles

Version:

Very Good Beginnings if you want to Learn Node.js

70 lines (55 loc) 1.77 kB
var maxTime = 1000; // if input is even, double it // if input is odd, return error. // ( call takes random amount of time < 1 sec ) var evenDoubler = function(v, callback) { var waitTime = Math.floor(Math.random()*(maxTime+1)); if(v%2) { setTimeout(function (){ callback(new Error("Odd Input"),null,waitTime); }, waitTime); } else { setTimeout(function (){ callback(null, v*2, waitTime); }, waitTime); } }; // handleResults is a named function. // a callback function usually have errors in the beginning and results at the end. var handleResults = function(err, results, time) { if (err) { console.log("ERROR: "+ err.message +" ("+ time + "ms)" ); } else { console.log("The results are : "+ results + " ("+ time + "ms)"); } }; // Calling the Asynchrnous function with callbacks, which means, once it is ready with "evenDoubling", it will invoke the "callback" function. for (var i=0; i<10 ; i++) { console.log('calling evenDoubler for value: '+ i); evenDoubler(i, handleResults); } console.log("............"); /* output calling evenDoubler for value: 0 calling evenDoubler for value: 1 calling evenDoubler for value: 2 calling evenDoubler for value: 3 calling evenDoubler for value: 4 calling evenDoubler for value: 5 calling evenDoubler for value: 6 calling evenDoubler for value: 7 calling evenDoubler for value: 8 calling evenDoubler for value: 9 ............ The results are : 12 (28ms) ERROR: Odd Input (221ms) The results are : 8 (311ms) The results are : 16 (343ms) The results are : 0 (397ms) ERROR: Odd Input (535ms) ERROR: Odd Input (550ms) ERROR: Odd Input (562ms) The results are : 4 (694ms) ERROR: Odd Input (812ms) Process exited with code: 0 */