functionfirst(stuff, done) { // stuff类型校验,略去 var cleanups = []
for (var i = 0; i < stuff.length; i++) { var arr = stuff[i]
// arr类型校验,略去 var ee = arr[0] // EventEmitter实例
for (var j = 1; j < arr.length; j++) { var event = arr[j] // 事件名 var fn = listener(event, callback)
// listen to the event // 此处只要触发了一个事件,结合下面`listener`的分析得知, // 那么最终会执行callback,而该callback就是清除所有的EventEmitter实例上的所有事件 ee.on(event, fn) // push this listener to the list of cleanups cleanups.push({ ee: ee, event: event, fn: fn }) } }