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

213
Vistas
¿Por qué la variable se calcula dos veces en una promesa asíncrona?

CORRIENTEMENTE

Tengo la siguiente función EN AWS que utiliza funciones asíncronas de Textract SDK:

 async function textParse(config) { const AWS = require("aws-sdk"); let textract = new AWS.Textract(); let analysisResults; console.log("Before Try"); try { console.log("Start Document Analysis"); analysisResults = await textract .startDocumentAnalysis(config, function (err, data) { if (err) { console.log("There was an error during doc analysis..."); console.log(err, err.stack); } // an error occurred else { console.log("Doc analysis successful!"); console.log(data); return data; } // successful response }) .promise(); } catch (e) { throw "Doc Analysis Error!" + e; } let JobId = analysisResults["JobId"]; let textractResult = await textract .getDocumentAnalysis({ JobId: JobId }) .promise(); console.log("End!") return textractResult; }

TEMA

El registro de la consola muestra que los resultados del analysisResults se calculan dos veces. Nota Doc analysis successful! apareciendo dos veces en los registros.

 INFO Before Try INFO Start Document Analysis INFO Doc analysis successful! INFO { JobId: '3a1e00c9b5ca9123124hhfdfdsdd02f2053c38ec5249e822c9e95f' } INFO Doc analysis successful! INFO { JobId: '5ef298d3a9123124hhfdfdsddsdssdsdsdds689580642a6346' } INFO End!

Pasé algunas horas tratando de depurar esto y sospecho que tiene algo que ver con la forma en que manejo las promesas.

¿Alguna idea sobre qué cambios debo hacer?

about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

No conozco la biblioteca de extractos, pero esto es lo que el código OP parece estar tratando de decir en un estilo singular (promesa, no devolución de llamada).

 async function textParse(config) { const AWS = require("aws-sdk"); let textract = new AWS.Textract(); console.log("Before Try"); try { console.log("Start Document Analysis"); let analysisResults = await textract .startDocumentAnalysis(config) .promise(); console.log("Doc analysis successful!", analysisResults); let textractResult = await textract .getDocumentAnalysis({ JobId: analysisResults["JobId"] }) .promise(); console.log("End!", textractResult); return textractResult; } catch (err) { console.log("There was an error during doc analysis..."); console.log(err, err.stack); } }

Me preocupa responder de esta manera, porque no parece abordar el síntoma descrito (dos registros de éxito), pero incluso si hay otro problema en el código, creo que sigue siendo una reescritura válida, en cuanto a la forma.

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