0

我正在使用https://www.npmjs.com/package/pdf2json npm 包,它将从给定路径中选择 pdf,当 pdf 解析器准备好解析它时,它会触发一个事件pdfParser_dataReady。我想将它与异步等待一起使用。

const defineParser = function (path) {
  let pdfParser = new PDFParser();
  pdfParser.loadPDF(path);

  pdfParser.on('pdfParser_dataError', (errData) => console.error(errData.data));
  pdfParser.on('pdfParser_dataReady', (pdfData) => {
    return initPdfParser(path, pdfData);
  });
};

在上面的代码里面pdfParser_dataReady我调用了一个initPdfParser返回一些数据的方法。并且defineParser函数以异步方式从其他函数调用。

const uploadEmailDoc = async function (req, h) {
  const path = `./controllers/${req.payload.file.hapi.filename}`;
  // some operation here
  await fs.writeFileSync(path, req.payload.file._data);
  return await defineParser(path);
};

我的问题是如何在上述情况下使用异步等待,以便该defineParser函数将等到pdfParser_dataReady事件被触发并从initPdfParser函数返回数据,以便uploadEmailDoc获取最终数据并返回它。我尝试了几种方法,但找不到从事件回调中获取响应的方法。

任何帮助将非常感激。

4

0 回答 0