Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/445.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用pdf2json在azure函数中读取pdf_Javascript_Node.js_Azure_Azure Functions_Pdf2json - Fatal编程技术网

Javascript 使用pdf2json在azure函数中读取pdf

Javascript 使用pdf2json在azure函数中读取pdf,javascript,node.js,azure,azure-functions,pdf2json,Javascript,Node.js,Azure,Azure Functions,Pdf2json,我成功地实现了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

我成功地实现了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
});
这在我的机器上的节点中运行良好。但是我需要将pdfPipe.on('--',function(){})转换为async并等待,因为azure函数不会等待pdfPipe完成


如何做到这一点?

使用以下方法解决

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);

使用以下方法解决

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);