我正在使用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
获取最终数据并返回它。我尝试了几种方法,但找不到从事件回调中获取响应的方法。
任何帮助将非常感激。