Consider the following functions where I am returning a value.
Method 1:
function getData() {
var myData = '';
var DateObj = new Date();
for (i=0; i<50000; i++) {
myData += "'" + DateObj.toString() +"', ";
}
return myData;
}
Method 2:
function getData(calbck) {
try{
var myData = '';
var DateObj = new Date();
for (i=0; i<50000; i++) {
myData += "'" + DateObj.toString() +"', ";
}
} catch(e){
return calbck(e,null);
}
return calbck(null, myData);
}
I have tested both the ways works. Which on is the best to choose?
Thanks
Update: Tested with the following code.
function getData1() {
var myData = '';
var DateObj = new Date();
for (i=0; i<50000; i++) {
myData += "'" + DateObj.toString() +"', ";
}
return myData;
}
function getData2(calbck) {
try{
var myData = '';
var DateObj = new Date();
for (i=0; i<50000; i++) {
myData += "'" + DateObj.toString() +"', ";
}
} catch(e){
return calbck(e,null);
}
return calbck(null, myData);
}
console.log('call getData1() start');
console.time('5000000-getData1()');
getData1()
console.log('call getData1() End');
console.timeEnd('5000000-getData1()');
console.log('call getData2(calbck) start');
console.time('5000000-getData2(calbck)');
getData2(function(err,Returned_value){
if(err) return console.log(err);
//console.log(Returned_value);
console.log('call getData2(calbck) End');
console.timeEnd('5000000-getData2(calbck)');
});
Output:
D:\Test>node app.js
call getData1() start
call getData1() End
5000000-getData1(): 91ms
call getData2(calbck) start
call getData2(calbck) End
5000000-getData2(calbck): 76ms
D:\Test>node app.js
call getData1() start
call getData1() End
5000000-getData1(): 111ms
call getData2(calbck) start
call getData2(calbck) End
5000000-getData2(calbck): 78ms