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

222
Views
¿Podemos regresar de una llamada rápida antes de que se resuelva una promesa?

¿Podemos regresar de una solicitud de llamada de función expresa antes de que se complete una promesa dentro de la función?

Para ser más precisos, tengo una ruta que cuando se llama hará una inserción en la base de datos. Estoy usando typeorm como la biblioteca ORM para ayudar con esto. Ahora, para que la aplicación sea más rápida, me gustaría devolver la solicitud al cliente incluso antes de que finalice la promesa.

He proporcionado un ejemplo mínimo en el bloque de código a continuación.

 app.get('/', (req, res) => { const user = new User(); user.firstName = "Timber"; user.lastName = "Saw"; user.age = 25; // There is no await here. This is an asynchronous process. repository.save(user); res.send('Hello World!') })

Sé que este objeto User se guardará de todos modos. Sin embargo, estoy más preocupado por cualquier problema potencial con Node & Express si se hace de esta manera, como una pérdida de memoria.

Información adicional: si por alguna razón hay un error al guardar, está bien si los datos no se escriben.

about 4 years ago · Juan Pablo Isaza
2 answers
Answer question

0

La llamada asíncrona se colocará en el bucle de eventos del nodo como cualquier otra llamada y se resolverá cuando pueda, como pudo observar en su aplicación. No debería haber ninguna preocupación por una pérdida de memoria, ya que así es como deben funcionar las llamadas asincrónicas.

El principal inconveniente es que está devolviendo un código de estado de éxito al usuario sin saber realmente que es un éxito y la eventual consistencia que experimentará el usuario. Si está de acuerdo con eso, entonces no hay razón para no 'regresar' temprano.

about 4 years ago · Juan Pablo Isaza Report

0

Puede usar la promesa de enviar una respuesta (la parte de entrega de errores se menciona en https://expressjs.com/en/guide/error-handling.html )

ejemplo:

 app.get('/', (req, res, next) => { const user = new User(); user.firstName = "Timber"; user.lastName = "Saw"; user.age = 25; repository.save(user) .then((_) => { res.send('Hello World!') }) .catch((err) => { next(err) }) })
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!