whole_func_string: function (path, maxAge, queueGetRequest) {
      var self = this;
      if (typeof(maxAge) === 'number') {
        return self.getNodes(pathsFromRoot(path))
        .then(function (objs) {
          var node = getLatest(objs[path]);
          if (isOutdated(objs, maxAge)) {
            return queueGetRequest(path);
          } else if (node) {
            return {statusCode: 200, body: node.body || node.itemsMap, contentType: node.contentType};
          } else {
            return {statusCode: 404};
          }
        });
      } else {
        return self.getNodes([path])
        .then(function (objs) {
          var node = getLatest(objs[path]);
          if (node) {
            if (isFolder(path)) {
              for (var i in node.itemsMap) {
                // the hasOwnProperty check here is only because our jshint settings require it:
                if (node.itemsMap.hasOwnProperty(i) && node.itemsMap[i] === false) {
                  delete node.itemsMap[i];
                }
              }
            }
            return {statusCode: 200, body: node.body || node.itemsMap, contentType: node.contentType};
          } else {
            return {statusCode: 404};
          }
        });
      }
    }
func_code_string: function (path, maxAge, queueGetRequest) {
      var self = this;
      if (typeof(maxAge) === 'number') {
        return self.getNodes(pathsFromRoot(path))
        .then(function (objs) {
          var node = getLatest(objs[path]);
          if (isOutdated(objs, maxAge)) {
            return queueGetRequest(path);
          } else if (node) {
            return {statusCode: 200, body: node.body || node.itemsMap, contentType: node.contentType};
          } else {
            return {statusCode: 404};
          }
        });
      } else {
        return self.getNodes([path])
        .then(function (objs) {
          var node = getLatest(objs[path]);
          if (node) {
            if (isFolder(path)) {
              for (var i in node.itemsMap) {
                // the hasOwnProperty check here is only because our jshint settings require it:
                if (node.itemsMap.hasOwnProperty(i) && node.itemsMap[i] === false) {
                  delete node.itemsMap[i];
                }
              }
            }
            return {statusCode: 200, body: node.body || node.itemsMap, contentType: node.contentType};
          } else {
            return {statusCode: 404};
          }
        });
      }
    }
func_documentation_string: TODO: improve our code structure so that this function could call sync.queueGetRequest directly instead of needing this hacky third parameter as a callback