Use Node.js in your end devices(QQ: 796448809)
The following shows Event module APIs available for each platform.
| Linux (Ubuntu) |
Raspbian (Raspberry Pi) |
NuttX (STM32F4-Discovery) |
TizenRT (Artik053) |
|
|---|---|---|---|---|
| emitter.addListener | O | O | O | O |
| emitter.on | O | O | O | O |
| emitter.emit | O | O | O | O |
| emitter.once | O | O | O | O |
| emitter.removeListener | O | O | O | O |
| emitter.removeAllListeners | O | O | O | O |
IoT.js is based on event-driven programming where objects (called “emitters”) periodically emit named events.
The events.EventEmitter plays a role as base class for “emitters”.
User application would not directly creates an instance of EventEmitter since EventEmitter is an abstract trait which defines its behavior and grants to sub-classes.
Returns with a new EventEmitter object.
Example
var EventEmitter = require('events').EventEmitter;
var emitter = new EventEmitter();
event {string} The name of the event.listener {Function} The callback function.
args {any}.emitter {events.EventEmitter}.It is an alias for emitter.on(eventName, listener).
Adds the listener callback function to the end of the listener’s list for the given event. No checks are made to see if the listener has already been added.
In case of multiple calls the listener will be added and called multiple times.
Example
var EventEmitter = require('events').EventEmitter;
var emitter = new EventEmitter();
var eventSequence = '';
var listener1 = function() {
eventSequence += '2';
};
emitter.addListener('test', listener1);
emitter.addListener('test', listener1);
emitter.emit('test');
console.log(eventSequence); // prints '22'
event {string} The name of the event.listener {Function} The callback function.
args {any}.emitter {events.EventEmitter}.Adds the listener callback function to the end of the listener’s list for the given event. No checks are made to see if the listener has already been added.
In case of multiple calls the listener will be added and called multiple times.
Example
var EventEmitter = require('events').EventEmitter;
var emitter = new EventEmitter();
emitter.on('event', function() {
console.log('emit event');
});
emitter.emit('event');
event {string} The name of the event.
args {any}.Synchronously calls each of the listeners registered for the event, in the order they were registered, passing the supplied arguments to each.
Returns true if the event had listeners, false otherwise.
Example
var EventEmitter = require('events').EventEmitter;
var emitter = new EventEmitter();
emitter.addListener('event', function() {
console.log('emit event');
});
emitter.emit('event'); // true
emitter.emit('not_an_event'); // false
event {string} The name of the event.listener {Function} The callback function.
args {any}.emitter {events.EventEmitter}.Adds the listener as a one time listener for the event.
Using this method, it is possible to register a listener that is called at most once for a particular event.
The listener will be invoked only once, when the first event is emitted.
Example
var EventEmitter = require('events').EventEmitter;
var assert = require('assert');
var emitter = new EventEmitter();
var onceCnt = 0;
emitter.once('once', function() {
onceCnt += 1;
});
assert.equal(onceCnt, 0);
emitter.emit('once');
assert.equal(onceCnt, 1);
emitter.emit('once');
assert.equal(onceCnt, 1);
event {string} The name of the event.listener {Function} The callback function.
args {any}.emitter {events.EventEmitter}.Removes listener from the list of event listeners.
If you add the same listener multiple times, this removes only one instance of them.
Example
var EventEmitter = require('events').EventEmitter;
var emitter = new EventEmitter();
var listener = function() {
console.log('listener');
};
emitter.addListener('event', listener);
emitter.removeListener('event', listener);
event {string} The name of the event.emitter {events.EventEmitter}.Removes all listeners.
If event was specified, it only removes the listeners for that event.
Example
var EventEmitter = require('events').EventEmitter;
var emitter = new EventEmitter();
function removableListener() {
console.log("listener called");
}
emitter.addListener('event1', removableListener);
emitter.addListener('event2', removableListener);
emitter.addListener('event2', removableListener);
emitter.addListener('event3', removableListener);
emitter.removeAllListeners('event2');
var res = emitter.emit('event2'); // res == false
res = emitter.emit('event1'); // res == true, prints "listener called"
emitter.removeAllListeners();
res = emitter.emit('event1'); // res == false
res = emitter.emit('event3'); // res == false
num {number} The max listener limit, default 7.emitter {events.EventEmitter}.Set the max listener limit, must be number and greater than 0.
Get the max listener limit, must be number.
eventName {string} The name of the event being listened for.listener {Function} The event handler function.The EventEmitter instance will emit its own ‘newListener’ event before a listener is added to its internal array of listeners.
Listeners registered for the ‘newListener’ event will be passed the event name and a reference to the listener being added.
The fact that the event is triggered before adding the listener has a subtle but important side effect: any additional listeners registered to the same name within the ‘newListener’ callback will be inserted before the listener that is in the process of being added.
const myEmitter = new MyEmitter();
// Only do this once so we don't loop forever
myEmitter.once('newListener', (event, listener) => {
if (event === 'event') {
// Insert a new listener in front
myEmitter.on('event', () => {
console.log('B');
});
}
});
myEmitter.on('event', () => {
console.log('A');
});
myEmitter.emit('event');
// Prints:
// B
// A
eventName {string} The name of the event being listened for.listener {Function} The event handler function.The EventEmitter instance will emit its own ‘removeListener’ event after a listener is removed.
var EventEmitter = require('events').EventEmitter;
var bus = new EventEmitter();
function noop() {}
bus.on('foobar', noop);
bus.on('removeListener', function(event, fn) {
console.log('event "foobar" is removed');
});
bus.removeListener('foobar', noop);
// Prints:
// event "foobar" is removed