Estoy construyendo un proyecto que analiza archivos PDF.
Tengo problemas con el orden de retorno de las siguientes funciones. Actualmente, el valor que quiero se devuelve antes de que el búfer pdf se analice por completo.
Orden: se devuelve la variable inicializada, y el resto del código se ejecuta en la función externa, y luego la página se analiza por completo
función exterior
// outer function iterates const variable = await pdfPageParser(pdfBuffer, pageKey); // rest of the codefunción interna
const pdfreader = require("pdfreader"); module.exports = async function pdfPageParser( pageBuffer, pageKey ) { let ENGR = false; let keyword = 'xyz'; await new pdfreader.PdfReader().parseBuffer(pageBuffer, async function(err, item) { if (err) { console.log(err); return err } else if (!item) { console.log('Finish Parsing'); return; } else if (item.text) { // check for keywords if (item.text.toLowerCase().includes(keyword)) { ENGR = true; } }; }) return ENGR; }Me gustaría que el resto del código esperara a que la página se analizara por completo antes de continuar. ¿Cómo hago para hacer eso?
Intenté establecer el valor de retorno de la función de espera pero volvió indefinido.
const ENGR = await new pdfreader.PdfReader().parseBuffer(pageBuffer, async function(err, item) { if (err) { console.log(err); return err } else if (!item) { console.log('Finish Parsing'); return; } else if (item.text) { // check for keywords if (item.text.toLowerCase().includes(keyword)) return true }; }) [...] return ENGR¡Gracias!