title: async.parallel inside async.series
body: <p>I have this async.parallel functionality inside an aysnc.eachSeries call.
  I hardcoded an error so I could pass it, to see if it was behaving the way I thought. For some reason, when I pass an error, it doesn't get thrown in the final callback named "doneWithSeries".</p>
  
  <pre><code>async.eachSeries(jsonDataArr, function iterator(item, callback) {
  
      async.parallel([
              function (cb) {
                  if (item.hasOwnProperty('event.type')) {
  
                      var event_type = item['event.type'];
                      delete item['event.type'];
                      try {
                          var json = JSON.stringify(item);
                      }
                      catch (err) {
                          throw err;
                      }
                      fs.writeFile('./enriched_data/' + event_type + '.json', json, function (err) {
                          if (err) {
                              cb(err);
                          }
                          else {
                              cb(null);
                          }
                      });
                  }
              },
              function (cb) {
                  if (item.hasOwnProperty('status_desc')) {
  
                      var status_desc = item['status_desc'];
                      delete item['status_desc'];
                      try {
                          var json = JSON.stringify(item);
                      }
                      catch (err) {
                          throw err;
                      }
                      fs.writeFile('./enriched_data/' + status_desc + '.json', json, function (err) {
                          if (err) {
                              cb(err);
                          }
                          else {
                              cb(null);
                          }
                      });
                  }
              }
          ],
  
          function doneWithParallel(err) {
              callback(new Error('throw this baby')); //shouldn't the first incident of error pass the error straight to the doneWithSeries callback below?
          })
  },
  function doneWithSeries(err) {
  
      if (err) {
          throw err;
      }
      else {
       console.log('success');
      }
  });
  </code></pre>
  
  <p>here is a distilled version of the code without anything unnecessary:</p>
  
  <pre><code>var async = require('async');
  
  async.eachSeries(['1', '2'], function (item, callback) {
  
          async.parallel([
                  function (cb) {
                      setTimeout(function () {
                          cb(null, 'one');
                      }, 200);
                  },
                  function (cb) {
                      setTimeout(function () {
                          cb(null, 'two');
                      }, 100);
                  }
              ],
              function doneWithParallel(err, results) {
                  console.log('results', results);
  
                  callback(new Error('duh'));
              })
      },
      function doneWithSeries(err) {
  
          if (err)
              throw err;
      });
  </code></pre>
  
  <p>indeed that works. can't figure out why my code above doesn't, accept perhaps that the array could be empty even though when I run my code the success message gets logged...weird.</p>