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

122
Vistas
espera encadenada en métodos encadenados de clase

contexto: dos clases de javascript en archivos separados, cada una de las cuales integra un servicio externo diferente y se llama en un enrutador express.js.

Ver "código problemático" a continuación:

  • ruta
 routes.post('/aws', upload.single('file'), async (req, res) => { const transcribeParams = JSON.parse(req.body.options) const bucket = 'bucket-name' const data = await ( await ( await awsTranscribe.Upload(req.file, bucket)).CreateJob(transcribeParams)).GetJob() res.send(data) })

  • clase S3
 class AmazonS3 { constructor() { this.Upload = this.Upload } async Upload(file, bucket) { const uploadParams = { Bucket: bucket, Body: fs.createReadStream(file.path), Key: file.filename, } this.data = await s3.upload(uploadParams).promise() return this } }

  • transcribir clase
 class Transcribe extends AwsS3 { constructor() { super() this.CreateJob = this.CreateJob this.GetJob = this.GetJob } async CreateJob(params) { if(this.data?.Location) { params.Media = { ...params.Media, MediaFileUri: this.data.Location } } this.data = await transcribeService.startTranscriptionJob(params).promise() return this } async GetJob(jobName) { if(this.data?.TranscriptionJob?.TranscriptionJobName) { jobName = this.data.TranscriptionJob.TranscriptionJobName } this.data = await transcribeService.getTranscriptionJob({TranscriptionJobName: jobName}).promise() return this } }

problema : el problema es con las esperas encadenadas en el archivo del enrutador:
await ( await ( await awsTranscribe.Upload...
Sí, funciona, pero sería horrible que otra persona mantuviera este código en el futuro.
¿Cómo puedo hacer para que sea justo?
awsTranscribe.Upload(req.file, bucket).CreateJob(transcribeParams).GetJob() sin el .then?

PD: Para aquellos que se preguntan por qué el último código está entre comillas, lo estaba acusando de no tener el formato correcto.

about 4 years ago · Juan Pablo Isaza
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