You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
64 lines
1.0 KiB
64 lines
1.0 KiB
|
|
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,
|
|
};
|
|
|