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

216
Vistas
Cómo enviar una respuesta utilizando dos o más devoluciones de llamada en una solicitud

Estoy usando express y la solicitud POST se ve así

 router.post('/', function(req, res, next){ var data = req.body; getRandom(data, function(value){ res.json({value: value}); }); });

POST se envía a través de ajax y luego actualiza textarea con nuevos datos.

 $.ajax({ type: "POST", url: "/", data: JSON.stringify(datareq), dataType: 'json', contentType: 'application/json', success: function(x){ $.each(x, function(index, value) { $('.textarea').append(value + '\n'); }); }, error: function(x) { console.log(x + 'error'); } });

Cómo enviar esto usando un POST y algunas respuestas. El usuario recibió un dato en el área de texto cuando cb terminó y luego otro dato y así uno hasta el final.

 <textarea> data 1 - 1sec data 2 - 2sec leater data 3 - 3 second later ... </textarea>

Agrego Tiempo (1 segundo...) solo para mostrar que la devolución de llamada tiene mucho que hacer para enviar otra respuesta.

Por supuesto, esto no funciona porque res.send () cerró la conexión y recibí un error

Entonces, ¿cómo lograr mi idea, enviar simultáneamente después de la solicitud posterior? Quiero dar datos de usuario muy rápido, luego otro cuando esté listo sin esperar a todos y luego enviar la respuesta.

about 4 years ago · Santiago Trujillo
1 Respuestas
Responde la pregunta

0

no puedes


Razón:

Http cierra la conexión después de enviar la respuesta. No puedes mantenerlo abierto y enviando múltiples respuestas al cliente. HTTP no lo admite.

Solución 1:

Simplemente coloque un temporizador en el lado del cliente y solicítelo periódicamente.

Solución 2 (recomendada):

Use socket y pase datos a través de él. socket.io es la biblioteca de sockets para aplicaciones nodejs . Es muy fácil de usar. Configure una conexión, siga enviando datos desde el servidor y recíbalos del lado del cliente.


Solo para agregar la respuesta. Esta respuesta explica por qué res.send cierra la conexión.

about 4 years ago · Santiago Trujillo Denunciar
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