UNPKG

lfr-amd-loader

Version:

AMD Loader with support for combo URL and conditional loading

126 lines (96 loc) 3.8 kB
<!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8"> <title>JSDoc: Source: event-emitter.js</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-tomorrow.css"> <link type="text/css" rel="stylesheet" href="styles/jsdoc-default.css"> </head> <body> <div id="main"> <h1 class="page-title">Source: event-emitter.js</h1> <section> <article> <pre class="prettyprint source linenums"><code>'use strict'; /** * Creates an instance of EventEmitter class. * * @constructor */ function EventEmitter() { this._events = {}; } EventEmitter.prototype = { constructor: EventEmitter, /** * Adds event listener to an event. * * @param {string} event The name of the event. * @param {Function} callback Callback method to be invoked when event is being emitted. */ on: function (event, callback) { var listeners = this._events[event] = this._events[event] || []; listeners.push(callback); }, /** * Removes an event from the list of event listeners to some event. * * @param {string} event The name of the event. * @param {function} callback Callback method to be removed from the list of listeners. */ off: function (event, callback) { var listeners = this._events[event]; if (listeners) { var callbackIndex = listeners.indexOf(callback); if (callbackIndex > -1) { listeners.splice(callbackIndex, 1); } else { console.warn('Off: callback was not removed: ' + callback.toString()); } } else { console.warn('Off: there are no listeners for event: ' + event); } }, /** * Emits an event. The function calls all registered listeners in the order they have been added. The provided args * param will be passed to each listener of the event. * * @param {string} event The name of the event. * @param {object} args Object, which will be passed to the listener as only argument. */ emit: function (event, args) { var listeners = this._events[event]; if (listeners) { // Slicing is needed to prevent the following situation: // A listener is being invoked. During its execution, it may // remove itself from the list. In this case, for loop will // be damaged, since i will be out of sync. listeners = listeners.slice(0); for (var i = 0; i &lt; listeners.length; i++) { var listener = listeners[i]; listener.call(listener, args); } } else { console.warn('No listeners for event: ' + event); } } };</code></pre> </article> </section> </div> <nav> <h2><a href="index.html">Index</a></h2><h3>Classes</h3><ul><li><a href="ConfigParser.html">ConfigParser</a></li><li><a href="DependencyBuilder.html">DependencyBuilder</a></li><li><a href="EventEmitter.html">EventEmitter</a></li><li><a href="Loader.html">Loader</a></li><li><a href="URLBuilder.html">URLBuilder</a></li></ul><h3>Events</h3><ul><li><a href="Loader.html#event:moduleRegister">moduleRegister</a></li></ul> </nav> <br clear="both"> <footer> Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.3.0-alpha5</a> on Tue Jun 16 2015 17:51:36 GMT+0200 (CEST) </footer> <script> prettyPrint(); </script> <script src="scripts/linenumber.js"> </script> </body> </html>