-
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathexample.js
53 lines (46 loc) · 1.22 KB
/
example.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
// Importer
var EventEmitterGrouped = require('./')
// Instantiate a new instance
var emitter = new EventEmitterGrouped()
// Bind an asynchronous event
emitter.on('hello', function (next) {
console.log('\tasync started')
setTimeout(function () {
console.log('\tasync finished')
next()
}, 1000)
})
// Bind a synchronous event
emitter.on('hello', function () {
console.log('\tsync started and finished')
})
// Bind a prioritized event
function vipListener() {
console.log('\tvip started and finished')
}
vipListener.priority = 1
emitter.on('hello', vipListener)
// Emit the events in serial (one after the other in a waiting fashion)
console.log('hello in serial started')
emitter.emitSerial('hello', function (err) {
console.log('hello in serial finished')
// Emit the events in parallel (all at once)
console.log('hello in parallel started')
emitter.emitParallel('hello', function (err) {
console.log('hello in parallel finished')
})
})
/* Outputs:
hello in serial started
vip started and finished
async started
async finished
sync started and finished
hello in serial finished
hello in parallel started
vip started and finished
async started
sync started and finished
async finished
hello in parallel finished
*/