3 changed files with 117 additions and 56 deletions
@ -0,0 +1,64 @@ |
|||||
|
|
||||
|
var messageLog = []; |
||||
|
|
||||
|
var pr = function( msg ){ |
||||
|
messageLog.push( msg ); |
||||
|
// console.log( '--', msg );
|
||||
|
} |
||||
|
|
||||
|
|
||||
|
function asyncFn( args ){ |
||||
|
return function( cb ){ |
||||
|
setTimeout( function(){ |
||||
|
pr( args.msg ); |
||||
|
if( args.error ){ |
||||
|
if( args.isThrow ){ |
||||
|
throw args.error; |
||||
|
} else { |
||||
|
return cb( args.error ); |
||||
|
} |
||||
|
} else { |
||||
|
return cb( ); |
||||
|
} |
||||
|
}); |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
function rand(){ |
||||
|
return parseInt( Math.random()*1000 ) % 27; |
||||
|
} |
||||
|
|
||||
|
function resolvingFn( msg ){ |
||||
|
return asyncFn({ |
||||
|
msg: msg, |
||||
|
delay: rand(), |
||||
|
error: null, |
||||
|
}); |
||||
|
} |
||||
|
|
||||
|
function rejectingFn( msg ){ |
||||
|
return asyncFn({ |
||||
|
msg: msg, |
||||
|
delay: rand(), |
||||
|
error: new Error( 'Reject:' + msg ), |
||||
|
}); |
||||
|
} |
||||
|
|
||||
|
function throwingFn( msg ){ |
||||
|
return asyncFn({ |
||||
|
msg: msg, |
||||
|
delay: rand(), |
||||
|
error: new Error( 'Throw:' + msg ), |
||||
|
isThrow: true, |
||||
|
}); |
||||
|
} |
||||
|
|
||||
|
|
||||
|
module.exports = { |
||||
|
messageLog: messageLog, |
||||
|
pr: pr, |
||||
|
asyncFn: asyncFn, |
||||
|
resolvingFn: resolvingFn, |
||||
|
rejectingFn: rejectingFn, |
||||
|
throwingFn: throwingFn, |
||||
|
}; |
Loading…
Reference in new issue