docs: function eachSeries(arrayTask, iteratorTask) {
      if (arrayTask == null) arrayTask = promisen();
      iteratorTask = promisen(iteratorTask);
      return waterfall([arrayTask, loopTask]);
  
      // composite multiple tasks
      function loopTask(arrayResults) {
        arrayResults = Array.prototype.map.call(arrayResults, wrap);
        return series(arrayResults).call(this);
      }
  
      function wrap(value) {
        return iterator;
        function iterator() {
          return iteratorTask.call(this, value);
        }
      }
    }