'use strict';
factorial(5, function (res) {
console.log('res: ' + res);
});
function factorial(n, callback) {
if (n < 0) {
throw 'illegal argument'
}
var result = 1;
while (n > 0) {
result *= n;
n--;
callback(result);