How to get xml2js results out of the parser in ES6?

await will wait for a Promise value to resolve, otherwise it'll just wrap the value it is given in a promise and resolve the promise right away. In your example,

await glob('./filedrop/ALLREQUESTS-*.xml', (err, files) => {

the call to glob does not return a Promise, so the await is essentially useless. So you need to create the promise yourself.

exports.checkFileDrop = async () => {
  console.log('Checking for xml in filedrop...');

  const files = await new Promise((resolve, reject) => glob('./filedrop/ALLREQUESTS-*.xml', (err, files) => {
    if (err) reject(err);
    else resolve(files);
  });

  const parser = new xml2js.Parser();

  const data = await new Promise((resolve, reject) => fs.readFile('./filedrop/ALLREQUESTS-20170707.xml', 'utf16le', function (err, data) {
    if (err) reject(err);
    else resolve(data);
  });

  const result = await new Promise((resolve, reject) => parser.parseString(data, (err, result) => {
    if (err) reject(err);
    else resolve(result);
  });

  console.log('data found');

  const requests = JSON.stringify(result.Records.Record);

  console.log(requests);
}

Note that now this function will reject the promise it returns instead of force-logging the error.

You can also condense this down with a helper. Node 8 for instance includes util.promisify to make code like this easier to write, e.g.

const util = require('util');

exports.checkFileDrop = async () => {
  console.log('Checking for xml in filedrop...');

  const files = await util.promisify(glob)('./filedrop/ALLREQUESTS-*.xml');
  const parser = new xml2js.Parser();

  const data = await util.promisify(fs.readFile)('./filedrop/ALLREQUESTS-20170707.xml', 'utf16le');

  const result = await util.promisify(parser.parseString.bind(parser))(data);

  console.log('data found');

  const requests = JSON.stringify(result.Records.Record);

  console.log(requests);
}