Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

214
Visualizações
¿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 Respostas
Responde à pergunta

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 Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda