我成功地实现了pdf2json,以便使用node从url获取和读取pdf。
然而,Azure函数是一个异步函数,在执行pdfPipe.on("pdfParser_dataReady",pdf => {})之前完成执行。
我的实现如下
var request = require('request');
var PDFParser = require("pdf2json");
var pdfParser = new PDFParser(this, 1);
var pdfPipe = request({ url: pdfUrl, encoding: null }).pipe(pdfParser);
pdfPipe.on("pdfParser_dataError", err => console.error(err));
pdfPipe.on("pdfParser_dataReady", pdf => {
/// hndle pdfData
});这在我的机器上的node中工作得很好。但我需要将函数(‘-’,pdfPipe.on(){})转换为异步,并等待azure函数不等待pdfPipe完成。
如何做到这一点?
发布于 2020-04-30 13:48:26
使用以下方法解决
async function streamToPdf(readableStream) {
return new Promise((resolve, reject) => {
readableStream.on("pdfParser_dataReady", (pdf) => {
resolve(pdf);
});
readableStream.on("pdfParser_dataError", reject);
});
}然后
var pdfPipe = request({ url: pdfUrl, encoding: null }).pipe(pdfParser);
var pdf = await streamToPdf(pdfPipe);https://stackoverflow.com/questions/61498694
复制相似问题