node.js - What event order guarantees does node make? -


i see in documentation listeners executed "in order" given event, other guarantees there? instance, following code guranteed print 0 through 9 sequentially, or side effect of current implementation?

var eventemitter = require('events').eventemitter var ev = new eventemitter();  ev.on("foo", console.log);  (var = 0; < 10; i++) {     ev.emit("foo", i); } 

listeners executed in order attached.

var eventemitter = require('events').eventemitter var ev = new eventemitter();  ev.on("foo", console.log); ev.on("foo", function(i){ console.log('...'); });  (var = 0; < 10; i++) {     ev.emit('foo', i); } 

will output:

1 ... 2 ... 3 ... // , on 

but change order of registration to:

ev.on('foo', function(i) { console.log('...'); }); ev.on('foo', console.log); 

and output be:

... 1 ... 2 ... 3 // , on 

as i'm sure can tell, has nothing fact original code prints values sequentially. i'm not sure if listeners called via emit executed on separate thread or not looks of results, i'd guess not why see sequential output.


Comments