javascript - 使用pdf2json在azure函数中读取pdf

标签 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: pdfUrl, encoding: null }).pipe(pdfParser);
pdfPipe.on("pdfParser_dataError", err => console.error(err));
pdfPipe.on("pdfParser_dataReady", pdf => {
   /// hndle pdfData
});

这在我的机器上的 Node 中运行良好。但我需要将 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);

关于javascript - 使用pdf2json在azure函数中读取pdf,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61498694/

相关文章:

node.js - 无法更新 Sails.js 模型实例中的属性

Azure B2C 自定义策略 - Azure Active Directory 提供程序技术配置文件不支持输出声明 'role'

javascript - Chrome 扩展 : "Error handling response: TypeError: Cannot set property ' value' of null"

javascript - 如何使 anchor 标记的 href 调用匿名函数?

javascript - 如何在react.js中跨子组件持久保存数据或状态?

javascript - 我应该如何循环依赖于前一个循环值的异步函数?

javascript - Expressjs - 有没有办法让 req,res 对象有辅助函数

azure - 如何优化区域部署以最小化感知延迟并最大程度地节省成本?

windows - 在 Windows 上使用 Azure CLI 颁发证书链中的自签名证书

php - 如何将 PHP 返回的输出插入到 HTML <div> 中? (我正在使用 WordPress)