render(token) {
    const start = now();
    const context = this.jobContexts[token];
    const { name } = context;

    const { getComponent } = this.config;

    const result = getComponent(name, context);

    return Promise.resolve(result).then((renderFn) => {
      // ensure that we have this component registered
      if (!renderFn || typeof renderFn !== 'function') {
        // component not registered
        context.statusCode = 404;
        return Promise.reject(notFound(name));
      }

      return renderFn(context.props);
    }).then((html) => { // eslint-disable-line consistent-return
      if (!html) {
        return Promise.reject(noHTMLError);
      }
      context.html = html;
      context.duration = msSince(start);
    }).catch((err) => {
      context.duration = msSince(start);
      return Promise.reject(err);
    });
  }
Renders a specific job (from a job token). The end result is applied to the corresponding
job context. Additionally, duration is calculated.