nl_tokens: asynchronously executes the agent s function ( wrapper for user defined code ) and the optional corresponding callback following the callback contract : callback ( error data ) ; validates the continuation of the agency in case of error during execution of current agent
pl_tokens: function execute ( ) { var res ; var functionInterface = { getValueOfAgent : getValueOfAgent } ; if ( func ) { setWaitingExec ( true ) ; setTimeout ( function ( ) { var errorOnExecution = false ; jn . logExecutionEvent ( id , 'INFO' , 'began function execution' , ( new Date ( ) ) . toJSON ( ) ) ; try { res = func ( functionInterface ) ; setResult ( res ) ; if ( callback ) { callback ( null , res ) ; } jn . logExecutionEvent ( id , 'INFO' , 'function executed whitout errors' , ( new Date ( ) ) . toJSON ( ) ) ; } catch ( err ) { errorOnExecution = true ; setResult ( err ) ; jn . logExecutionEvent ( id , 'ERROR' , 'failed to execute function: ' + err . message , ( new <mask> ( ) ) . toJSON ( ) ) ; if ( callback ) { callback ( err ) ; } } setExecuted ( true ) ; setWaitingExec ( false ) ; if ( haltsExecution && errorOnExecution ) { jn . logExecutionEvent ( id , 'ERROR' , 'error on execution halted agency execution' , ( new Date ( ) ) . toJSON ( ) ) ; agency . report ( ) ; } else { agency . runAgents ( ) ; } } , 0 ) ; } else { jn . logExecutionEvent ( id , 'INFO' , 'does not have a defined function' , ( new Date ( ) ) . toJSON ( ) ) ; } }