Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

212
Views
¿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 answers
Answer question

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!