читать pdf в функции azure, используя pdf2json - PullRequest
1 голос
/ 29 апреля 2020

Я успешно реализовал pdf2 json для извлечения и чтения pdf из URL с использованием узла.

Однако функция Azure является асинхронной c функцией и завершает выполнение до выполнения 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 () {}) в asyn c и ждать, пока функция azure не ожидает pdfPipe до конца sh.

* 1009. * Как это сделать?

1 Ответ

0 голосов
/ 30 апреля 2020

Решено, используя следующий подход

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