UNPKG

bhive

Version:
153 lines (114 loc) 23.2 kB
<!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8"> <title>core/AsyncTask.js - Documentation</title> <script src="scripts/prettify/prettify.js"></script> <script src="scripts/prettify/lang-css.js"></script> <!--[if lt IE 9]> <script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script> <![endif]--> <link type="text/css" rel="stylesheet" href="styles/prettify.css"> <link type="text/css" rel="stylesheet" href="styles/jsdoc.css"> <script src="scripts/nav.js" defer></script> <meta name="viewport" content="width=device-width, initial-scale=1.0"> </head> <body> <input type="checkbox" id="nav-trigger" class="nav-trigger" /> <label for="nav-trigger" class="navicon-button x"> <div class="navicon"></div> </label> <label for="nav-trigger" class="overlay"></label> <nav > <input type="text" id="nav-search" placeholder="Search" /> <h2><a href="index.html">Home</a></h2><h3>Classes</h3><ul><li><a href="AsyncTask.html">AsyncTask</a><ul class='methods'><li data-type='method' style='display: none;'><a href="AsyncTask.html#_close">_close</a></li><li data-type='method' style='display: none;'><a href="AsyncTask.html#_enter">_enter</a></li><li data-type='method' style='display: none;'><a href="AsyncTask.html#_exit">_exit</a></li><li data-type='method' style='display: none;'><a href="AsyncTask.html#_open">_open</a></li><li data-type='method' style='display: none;'><a href="AsyncTask.html#_run">_run</a></li><li data-type='method' style='display: none;'><a href="AsyncTask.html#_tick">_tick</a></li><li data-type='method' style='display: none;'><a href="AsyncTask.html#close">close</a></li><li data-type='method' style='display: none;'><a href="AsyncTask.html#enter">enter</a></li><li data-type='method' style='display: none;'><a href="AsyncTask.html#exit">exit</a></li><li data-type='method' style='display: none;'><a href="AsyncTask.html#open">open</a></li><li data-type='method' style='display: none;'><a href="AsyncTask.html#tick">tick</a></li></ul></li><li><a href="BaseComposite.html">BaseComposite</a><ul class='methods'><li data-type='method' style='display: none;'><a href="BaseComposite.html#_close">_close</a></li><li data-type='method' style='display: none;'><a href="BaseComposite.html#_enter">_enter</a></li><li data-type='method' style='display: none;'><a href="BaseComposite.html#_exit">_exit</a></li><li data-type='method' style='display: none;'><a href="BaseComposite.html#_open">_open</a></li><li data-type='method' style='display: none;'><a href="BaseComposite.html#_run">_run</a></li><li data-type='method' style='display: none;'><a href="BaseComposite.html#_tick">_tick</a></li><li data-type='method' style='display: none;'><a href="BaseComposite.html#close">close</a></li><li data-type='method' style='display: none;'><a href="BaseComposite.html#enter">enter</a></li><li data-type='method' style='display: none;'><a href="BaseComposite.html#exit">exit</a></li><li data-type='method' style='display: none;'><a href="BaseComposite.html#open">open</a></li><li data-type='method' style='display: none;'><a href="BaseComposite.html#run">run</a></li><li data-type='method' style='display: none;'><a href="BaseComposite.html#tick">tick</a></li></ul></li><li><a href="BaseDecorator.html">BaseDecorator</a><ul class='methods'><li data-type='method' style='display: none;'><a href="BaseDecorator.html#_close">_close</a></li><li data-type='method' style='display: none;'><a href="BaseDecorator.html#_enter">_enter</a></li><li data-type='method' style='display: none;'><a href="BaseDecorator.html#_exit">_exit</a></li><li data-type='method' style='display: none;'><a href="BaseDecorator.html#_open">_open</a></li><li data-type='method' style='display: none;'><a href="BaseDecorator.html#_run">_run</a></li><li data-type='method' style='display: none;'><a href="BaseDecorator.html#_tick">_tick</a></li><li data-type='method' style='display: none;'><a href="BaseDecorator.html#close">close</a></li><li data-type='method' style='display: none;'><a href="BaseDecorator.html#enter">enter</a></li><li data-type='method' style='display: none;'><a href="BaseDecorator.html#exit">exit</a></li><li data-type='method' style='display: none;'><a href="BaseDecorator.html#open">open</a></li><li data-type='method' style='display: none;'><a href="BaseDecorator.html#run">run</a></li><li data-type='method' style='display: none;'><a href="BaseDecorator.html#tick">tick</a></li></ul></li><li><a href="BaseNode.html">BaseNode</a><ul class='methods'><li data-type='method' style='display: none;'><a href="BaseNode.html#_close">_close</a></li><li data-type='method' style='display: none;'><a href="BaseNode.html#_enter">_enter</a></li><li data-type='method' style='display: none;'><a href="BaseNode.html#_exit">_exit</a></li><li data-type='method' style='display: none;'><a href="BaseNode.html#_open">_open</a></li><li data-type='method' style='display: none;'><a href="BaseNode.html#_run">_run</a></li><li data-type='method' style='display: none;'><a href="BaseNode.html#_tick">_tick</a></li><li data-type='method' style='display: none;'><a href="BaseNode.html#close">close</a></li><li data-type='method' style='display: none;'><a href="BaseNode.html#enter">enter</a></li><li data-type='method' style='display: none;'><a href="BaseNode.html#exit">exit</a></li><li data-type='method' style='display: none;'><a href="BaseNode.html#open">open</a></li><li data-type='method' style='display: none;'><a href="BaseNode.html#run">run</a></li><li data-type='method' style='display: none;'><a href="BaseNode.html#tick">tick</a></li></ul></li><li><a href="BehaviorTree.html">BehaviorTree</a><ul class='methods'><li data-type='method' style='display: none;'><a href="BehaviorTree.html#tick">tick</a></li></ul></li><li><a href="Board.html">Board</a><ul class='methods'><li data-type='method' style='display: none;'><a href="Board.html#clear">clear</a></li><li data-type='method' style='display: none;'><a href="Board.html#get">get</a></li><li data-type='method' style='display: none;'><a href="Board.html#isEmpty">isEmpty</a></li><li data-type='method' style='display: none;'><a href="Board.html#set">set</a></li><li data-type='method' style='display: none;'><a href="Board.html#toJSON">toJSON</a></li><li data-type='method' style='display: none;'><a href="Board.html#unset">unset</a></li></ul></li><li><a href="Inverter.html">Inverter</a><ul class='methods'><li data-type='method' style='display: none;'><a href="Inverter.html#_close">_close</a></li><li data-type='method' style='display: none;'><a href="Inverter.html#_enter">_enter</a></li><li data-type='method' style='display: none;'><a href="Inverter.html#_exit">_exit</a></li><li data-type='method' style='display: none;'><a href="Inverter.html#_open">_open</a></li><li data-type='method' style='display: none;'><a href="Inverter.html#_run">_run</a></li><li data-type='method' style='display: none;'><a href="Inverter.html#_tick">_tick</a></li><li data-type='method' style='display: none;'><a href="Inverter.html#close">close</a></li><li data-type='method' style='display: none;'><a href="Inverter.html#enter">enter</a></li><li data-type='method' style='display: none;'><a href="Inverter.html#exit">exit</a></li><li data-type='method' style='display: none;'><a href="Inverter.html#open">open</a></li><li data-type='method' style='display: none;'><a href="Inverter.html#run">run</a></li><li data-type='method' style='display: none;'><a href="Inverter.html#tick">tick</a></li></ul></li><li><a href="Logger.html">Logger</a></li><li></li><li><a href="module-BlackBoard-Blackboard.html">Blackboard</a><ul class='methods'><li data-type='method' style='display: none;'><a href="module-BlackBoard-Blackboard.html#createTree">createTree</a></li><li data-type='method' style='display: none;'><a href="module-BlackBoard-Blackboard.html#get">get</a></li><li data-type='method' style='display: none;'><a href="module-BlackBoard-Blackboard.html#listTree">listTree</a></li><li data-type='method' style='display: none;'><a href="module-BlackBoard-Blackboard.html#removeTree">removeTree</a></li><li data-type='method' style='display: none;'><a href="module-BlackBoard-Blackboard.html#set">set</a></li><li data-type='method' style='display: none;'><a href="module-BlackBoard-Blackboard.html#toJSON">toJSON</a></li><li data-type='method' style='display: none;'><a href="module-BlackBoard-Blackboard.html#tree">tree</a></li></ul></li><li></li><li><a href="module-Context-Context.html">Context</a><ul class='methods'><li data-type='method' style='display: none;'><a href="module-Context-Context.html#closeNode">closeNode</a></li><li data-type='method' style='display: none;'><a href="module-Context-Context.html#enterNode">enterNode</a></li><li data-type='method' style='display: none;'><a href="module-Context-Context.html#exitNode">exitNode</a></li><li data-type='method' style='display: none;'><a href="module-Context-Context.html#openNode">openNode</a></li><li data-type='method' style='display: none;'><a href="module-Context-Context.html#runNode">runNode</a></li></ul></li><li><a href="NodeBoard.html">NodeBoard</a></li><li><a href="Priority.html">Priority</a><ul class='methods'><li data-type='method' style='display: none;'><a href="Priority.html#_close">_close</a></li><li data-type='method' style='display: none;'><a href="Priority.html#_enter">_enter</a></li><li data-type='method' style='display: none;'><a href="Priority.html#_exit">_exit</a></li><li data-type='method' style='display: none;'><a href="Priority.html#_open">_open</a></li><li data-type='method' style='display: none;'><a href="Priority.html#_run">_run</a></li><li data-type='method' style='display: none;'><a href="Priority.html#_tick">_tick</a></li><li data-type='method' style='display: none;'><a href="Priority.html#close">close</a></li><li data-type='method' style='display: none;'><a href="Priority.html#enter">enter</a></li><li data-type='method' style='display: none;'><a href="Priority.html#exit">exit</a></li><li data-type='method' style='display: none;'><a href="Priority.html#open">open</a></li><li data-type='method' style='display: none;'><a href="Priority.html#run">run</a></li><li data-type='method' style='display: none;'><a href="Priority.html#tick">tick</a></li></ul></li><li></li><li><a href="Registry.html">Registry</a><ul class='methods'><li data-type='method' style='display: none;'><a href="Registry.html#getNode">getNode</a></li><li data-type='method' style='display: none;'><a href="Registry.html#getNodeTypes">getNodeTypes</a></li><li data-type='method' style='display: none;'><a href="Registry.html#merge">merge</a></li><li data-type='method' style='display: none;'><a href="Registry.html#register">register</a></li></ul></li><li></li><li><a href="Repeater.html">Repeater</a><ul class='methods'><li data-type='method' style='display: none;'><a href="Repeater.html#open">open</a></li><li data-type='method' style='display: none;'><a href="Repeater.html#run">run</a></li></ul></li><li><a href="RewindWhenFailure.html">RewindWhenFailure</a><ul class='methods'><li data-type='method' style='display: none;'><a href="RewindWhenFailure.html#_close">_close</a></li><li data-type='method' style='display: none;'><a href="RewindWhenFailure.html#_enter">_enter</a></li><li data-type='method' style='display: none;'><a href="RewindWhenFailure.html#_exit">_exit</a></li><li data-type='method' style='display: none;'><a href="RewindWhenFailure.html#_open">_open</a></li><li data-type='method' style='display: none;'><a href="RewindWhenFailure.html#_run">_run</a></li><li data-type='method' style='display: none;'><a href="RewindWhenFailure.html#_tick">_tick</a></li><li data-type='method' style='display: none;'><a href="RewindWhenFailure.html#close">close</a></li><li data-type='method' style='display: none;'><a href="RewindWhenFailure.html#enter">enter</a></li><li data-type='method' style='display: none;'><a href="RewindWhenFailure.html#exit">exit</a></li><li data-type='method' style='display: none;'><a href="RewindWhenFailure.html#open">open</a></li><li data-type='method' style='display: none;'><a href="RewindWhenFailure.html#run">run</a></li><li data-type='method' style='display: none;'><a href="RewindWhenFailure.html#tick">tick</a></li></ul></li><li><a href="RewindWhenRunning.html">RewindWhenRunning</a><ul class='methods'><li data-type='method' style='display: none;'><a href="RewindWhenRunning.html#_close">_close</a></li><li data-type='method' style='display: none;'><a href="RewindWhenRunning.html#_enter">_enter</a></li><li data-type='method' style='display: none;'><a href="RewindWhenRunning.html#_exit">_exit</a></li><li data-type='method' style='display: none;'><a href="RewindWhenRunning.html#_open">_open</a></li><li data-type='method' style='display: none;'><a href="RewindWhenRunning.html#_run">_run</a></li><li data-type='method' style='display: none;'><a href="RewindWhenRunning.html#_tick">_tick</a></li><li data-type='method' style='display: none;'><a href="RewindWhenRunning.html#close">close</a></li><li data-type='method' style='display: none;'><a href="RewindWhenRunning.html#enter">enter</a></li><li data-type='method' style='display: none;'><a href="RewindWhenRunning.html#exit">exit</a></li><li data-type='method' style='display: none;'><a href="RewindWhenRunning.html#open">open</a></li><li data-type='method' style='display: none;'><a href="RewindWhenRunning.html#run">run</a></li><li data-type='method' style='display: none;'><a href="RewindWhenRunning.html#tick">tick</a></li></ul></li><li><a href="Sequence.html">Sequence</a><ul class='methods'><li data-type='method' style='display: none;'><a href="Sequence.html#_close">_close</a></li><li data-type='method' style='display: none;'><a href="Sequence.html#_enter">_enter</a></li><li data-type='method' style='display: none;'><a href="Sequence.html#_exit">_exit</a></li><li data-type='method' style='display: none;'><a href="Sequence.html#_open">_open</a></li><li data-type='method' style='display: none;'><a href="Sequence.html#_run">_run</a></li><li data-type='method' style='display: none;'><a href="Sequence.html#_tick">_tick</a></li><li data-type='method' style='display: none;'><a href="Sequence.html#close">close</a></li><li data-type='method' style='display: none;'><a href="Sequence.html#enter">enter</a></li><li data-type='method' style='display: none;'><a href="Sequence.html#exit">exit</a></li><li data-type='method' style='display: none;'><a href="Sequence.html#open">open</a></li><li data-type='method' style='display: none;'><a href="Sequence.html#run">run</a></li><li data-type='method' style='display: none;'><a href="Sequence.html#tick">tick</a></li></ul></li><li><a href="Task.html">Task</a><ul class='methods'><li data-type='method' style='display: none;'><a href="Task.html#_close">_close</a></li><li data-type='method' style='display: none;'><a href="Task.html#_enter">_enter</a></li><li data-type='method' style='display: none;'><a href="Task.html#_exit">_exit</a></li><li data-type='method' style='display: none;'><a href="Task.html#_open">_open</a></li><li data-type='method' style='display: none;'><a href="Task.html#_run">_run</a></li><li data-type='method' style='display: none;'><a href="Task.html#_tick">_tick</a></li><li data-type='method' style='display: none;'><a href="Task.html#close">close</a></li><li data-type='method' style='display: none;'><a href="Task.html#enter">enter</a></li><li data-type='method' style='display: none;'><a href="Task.html#exit">exit</a></li><li data-type='method' style='display: none;'><a href="Task.html#open">open</a></li><li data-type='method' style='display: none;'><a href="Task.html#tick">tick</a></li></ul></li><li></li><li><a href="TreeBoard.html">TreeBoard</a><ul class='methods'><li data-type='method' style='display: none;'><a href="TreeBoard.html#clear">clear</a></li><li data-type='method' style='display: none;'><a href="TreeBoard.html#createNode">createNode</a></li><li data-type='method' style='display: none;'><a href="TreeBoard.html#gc">gc</a></li><li data-type='method' style='display: none;'><a href="TreeBoard.html#get">get</a></li><li data-type='method' style='display: none;'><a href="TreeBoard.html#isEmpty">isEmpty</a></li><li data-type='method' style='display: none;'><a href="TreeBoard.html#listNode">listNode</a></li><li data-type='method' style='display: none;'><a href="TreeBoard.html#node">node</a></li><li data-type='method' style='display: none;'><a href="TreeBoard.html#removeNode">removeNode</a></li><li data-type='method' style='display: none;'><a href="TreeBoard.html#set">set</a></li><li data-type='method' style='display: none;'><a href="TreeBoard.html#toJSON">toJSON</a></li><li data-type='method' style='display: none;'><a href="TreeBoard.html#unset">unset</a></li></ul></li><li><a href="TreeBuilder.html">TreeBuilder</a></li><li></li><li><a href="UntilFailure.html">UntilFailure</a><ul class='methods'><li data-type='method' style='display: none;'><a href="UntilFailure.html#_close">_close</a></li><li data-type='method' style='display: none;'><a href="UntilFailure.html#_enter">_enter</a></li><li data-type='method' style='display: none;'><a href="UntilFailure.html#_exit">_exit</a></li><li data-type='method' style='display: none;'><a href="UntilFailure.html#_open">_open</a></li><li data-type='method' style='display: none;'><a href="UntilFailure.html#_run">_run</a></li><li data-type='method' style='display: none;'><a href="UntilFailure.html#_tick">_tick</a></li><li data-type='method' style='display: none;'><a href="UntilFailure.html#close">close</a></li><li data-type='method' style='display: none;'><a href="UntilFailure.html#enter">enter</a></li><li data-type='method' style='display: none;'><a href="UntilFailure.html#exit">exit</a></li><li data-type='method' style='display: none;'><a href="UntilFailure.html#open">open</a></li><li data-type='method' style='display: none;'><a href="UntilFailure.html#run">run</a></li><li data-type='method' style='display: none;'><a href="UntilFailure.html#tick">tick</a></li></ul></li><li><a href="UntilSuccess.html">UntilSuccess</a><ul class='methods'><li data-type='method' style='display: none;'><a href="UntilSuccess.html#_close">_close</a></li><li data-type='method' style='display: none;'><a href="UntilSuccess.html#_enter">_enter</a></li><li data-type='method' style='display: none;'><a href="UntilSuccess.html#_exit">_exit</a></li><li data-type='method' style='display: none;'><a href="UntilSuccess.html#_open">_open</a></li><li data-type='method' style='display: none;'><a href="UntilSuccess.html#_run">_run</a></li><li data-type='method' style='display: none;'><a href="UntilSuccess.html#_tick">_tick</a></li><li data-type='method' style='display: none;'><a href="UntilSuccess.html#close">close</a></li><li data-type='method' style='display: none;'><a href="UntilSuccess.html#enter">enter</a></li><li data-type='method' style='display: none;'><a href="UntilSuccess.html#exit">exit</a></li><li data-type='method' style='display: none;'><a href="UntilSuccess.html#open">open</a></li><li data-type='method' style='display: none;'><a href="UntilSuccess.html#run">run</a></li><li data-type='method' style='display: none;'><a href="UntilSuccess.html#tick">tick</a></li></ul></li></ul><h3>Modules</h3><ul><li><a href="module-BlackBoard.html">BlackBoard</a></li><li><a href="module-Context.html">Context</a></li></ul><h3>Tutorials</h3><ul><li><a href="tutorial-blackboard.html">Blackboard</a></li></ul><h3>Global</h3><ul><li><a href="global.html#BehaviorTreeOptions">BehaviorTreeOptions</a></li><li><a href="global.html#Constant">Constant</a></li><li><a href="global.html#defaultBehaviorTreeOptions">defaultBehaviorTreeOptions</a></li><li><a href="global.html#LogFunction">LogFunction</a></li><li><a href="global.html#NodeCategory">NodeCategory</a></li><li><a href="global.html#NodeData">NodeData</a></li><li><a href="global.html#NodeDefinition">NodeDefinition</a></li><li><a href="global.html#NodeId">NodeId</a></li><li><a href="global.html#NodeStatus">NodeStatus</a></li><li><a href="global.html#NodeType">NodeType</a></li><li><a href="global.html#Registers">Registers</a></li><li><a href="global.html#severities">severities</a></li><li><a href="global.html#SYSLOG_LEVEL">SYSLOG_LEVEL</a></li><li><a href="global.html#TreeDefinition">TreeDefinition</a></li><li><a href="global.html#workerConfig">workerConfig</a></li></ul> </nav> <div id="main"> <h1 class="page-title">core/AsyncTask.js</h1> <section> <article> <pre class="prettyprint source linenums"><code>const BaseNode = require('../core/BaseNode'); const {TASK, RUNNING, ERROR} = require('../constants'); /** * @typedef {object} workerConfig * @property {string} taskDir * @property {string} logDir * @property {string} uuid */ /** * Class AsyncTask * @extends BaseNode */ class AsyncTask extends BaseNode { /** * @constructor * @param {object} params={} * @param {string} [params.type='AsyncTask'] * @param {string} [params.name=params.type] * @param {object} [params.properties] * @param {function} params.run */ constructor({type = 'AsyncTask', name, description, properties, run} = {}) { super({ category: TASK, type, name: name || type, description, properties }); /** @type {function} */ this.run = run; } /** * @override * @param {Context} context */ open(context) { super.open(context); const nodeBoard = context.treeBoard.node(this); nodeBoard.set('asyncStatus', RUNNING); this.run(context) .then((result) => { nodeBoard.set('asyncStatus', result); }) .catch((err) => { context.logger.err(`Failed to running AsyncTask ${this.name}` + `\n${err.message}\n${err.stack}`); nodeBoard.set('asyncStatus', ERROR); }) } /** * @override * @param {Context} context A run instance. * @return {Constant} A state constant. * @protected **/ _run(context) { const nodeBoard = context.blackboard.tree(context.behaviorTree).node(this); return nodeBoard.get('asyncStatus'); } /** * @param context */ close(context) { const nodeBoard = context.blackboard.tree(context.behaviorTree).node(this); context.logger.debug(`success asyncTask:${this.name} with status: ` + nodeBoard.get('asyncStatus')); nodeBoard.unset('asyncStatus'); } } module.exports = AsyncTask; </code></pre> </article> </section> </div> <br class="clear"> <footer> Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.6.3</a> on Mon Nov 04 2019 17:31:31 GMT+0900 (Korean Standard Time) using the <a href="https://github.com/clenemt/docdash">docdash</a> theme. </footer> <script>prettyPrint();</script> <script src="scripts/polyfill.js"></script> <script src="scripts/linenumber.js"></script> <script src="scripts/search.js" defer></script> <script src="scripts/collapse.js" defer></script> </body> </html>