Update Iot.js
[platform/upstream/iotjs.git] / docs / api / IoT.js-API-Events.md
1 The application programming model of IoT.js is based on event-driven programming. Thus many objects in IoT.js emit events. `events.EventEmitter` plays a role as base class for such objects.
2
3
4 ## Class: EventEmitter
5 User application would not directly create an instance of `EventEmitter` since `EventEmitter` is an abstract trait which defines its behavior and grants to sub-classes.
6
7
8 ### Methods
9
10
11 #### emitter.addListener(event, listener)
12 #### emitter.on(event, listener)
13 * `event: String`
14 * `listener: Function([args..])`
15 * Returns emitter
16
17 Adds `listener` to the end of list of event listeners for `event`.
18
19
20 #### emitter.emit(event[, arg1[, arg2[...]]])
21 * `event: String`
22 * Returns `Boolean`
23
24 Invokes each of listener with supplied arguments.
25
26 Returns `true` if there were listeners, `false` otherwise.
27
28
29 #### emitter.once(event, listener)
30 * `event: String`
31 * `listener: Function([args..])`
32 * Returns emitter
33
34 Adds `listener` for one time listener for `event`.
35
36 The listener will be invoked at the next event and removed.
37
38
39 #### emitter.removeListener(event, listener)
40 * `event: String`
41 * `listener: Function([args..])`
42 * Returns emitter
43
44 Removes listener from the list of event listeners.
45
46 If you add the same listener multiple times, this removes only one instance of them.
47
48
49 #### emitter.removeAllListener([event])
50 * `event: String`
51 * Returns emitter
52
53 Removes all listeners.
54
55 If `event` was specified, it only removes listeners for that event.