Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

349
Vistas
Async await no funciona en el comando html2pdf

Estoy usando html2pdf para generar y guardar pdf. Luego estoy usando fetch para obtener datos en pdf. El problema es que mi espera no funciona en la línea html2pdf(). Si uso settimeout en fetch, entonces funciona correctamente. Usar await me está dando un error 404. El siguiente es mi código.

 (async () => { var element = document.getElementById('canvas_div_pdf'); var opt = { pagebreak: { before: '.beforeClass' }, image: { type: 'jpeg', quality: 1 }, }; let pdfData; let timestamp = +new Date(); await html2pdf() .set(opt) .from(element) .toPdf() .get('pdf') .then(function (pdf) { var totalPages = pdf.internal.getNumberOfPages(); // page numbers for (i = 1; i <= totalPages; i++) { pdf.setPage(i); pdf.setFontSize(10); pdf.setTextColor(150); pdf.text( 'Page ' + i + ' of ' + totalPages, pdf.internal.pageSize.getWidth() - 30, pdf.internal.pageSize.getHeight() - 10 ); } }) .save(timestamp + '.pdf'); await fetch(timestamp + '.pdf') .then((response) => response.text()) .then((text) => { console.log(text); pdfData = text; }); const rawResponse = await fetch('api/pdf', { method: 'POST', headers: { Accept: 'application/json', 'Content-Type': 'application/json', }, body: pdfData, }); const content = await rawResponse.json(); console.log(content); })();
about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

No ejecuté este código, pero la primera idea que puede intentar es:

 const pdf = await html2pdf().set(opt).from(element).toPdf().get('pdf'); var totalPages = pdf.internal.getNumberOfPages(); // page numbers for (i = 1; i <= totalPages; i++) { pdf.setPage(i); pdf.setFontSize(10); pdf.setTextColor(150); pdf.text( 'Page ' + i + ' of ' + totalPages, pdf.internal.pageSize.getWidth() - 30, pdf.internal.pageSize.getHeight() - 10 ); } pdf.save();

Lo que quiero decir es que usas await y then juntos, lo que no funcionará. Lo que debe hacer es usar async en promesa y luego operar en el resultado.

about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda