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

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

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 Relatório

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 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