code: function sequence(tasks /* Any Arguments */) {
      const args = Array.prototype.slice.call(arguments, 1);
  
      return Promise.reduce(tasks, function (results, task) {
          const response = task.apply(this, args);
  
          if (response && response.then) {
              return response.then(function (result) {
                  results.push(result);
                  return results;
              });
          } else {
              return Promise.resolve().then(() => {
                  results.push(response);
                  return results;
              });
          }
      }, []);
  }
docs: expects an array of functions returning a promise