function tryHandleCache(options, data, cb) {
  var result;
  if (!cb) {
    if (typeof exports.promiseImpl == 'function') {
      return new exports.promiseImpl(function (resolve, reject) {
        try {
          result = handleCache(options)(data);
          resolve(result);
        }
        catch (err) {
          reject(err);
        }
      });
    }
    else {
      throw new Error('Please provide a callback function');
    }
  }
  else {
    try {
      result = handleCache(options)(data);
    }
    catch (err) {
      return cb(err);
    }

    cb(null, result);
  }
}
Try calling handleCache with the given options and data and call the
callback with the result. If an error occurs, call the callback with
the error. Used by renderFile().

@memberof module:ejs-internal
@param {Options} options    compilation options
@param {Object} data        template data
@param {RenderFileCallback} cb callback
@static