I found this to be a good explanation...
http://blog.mixu.net/2011/02/01/understanding-the-node-js-ev...