The example I'm talking about is the one where he doesn't handle errors either, this one: http://pastebin.com/98CarwzU.
And your example is disingenuous too, why do we need to add so much logic instead of collecting the errors if you want to handle them anyway?
result.push(err || data);
So you don't need to copy around a variable called "hasFail", one line can be enough var failed = results.every(Buffer.isBuffer);