code: function makeTask(fetch, deferred) {
    return function start(props, promises, match) {
      var promise = fetch(props, promises, match);
  
      if (promise.isFulfilled()) {
        deferred.resolve(promise.value());
        return promise;
      } else {
        return promise.then(
          (result) => {
            deferred.resolve(result);
            return result;
          },
          (err) => {
            deferred.reject(err);
            throw err;
          }
        );
      }
    };
  }
docs: Make task
  
  @param {String} name
  @param {Function} fetch
  @returns {Function}