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

260
Vistas
Haga que JavaScript espere hasta que websocket reciba una respuesta

Entonces, como dice el título, estoy jugando con websockets. Hasta ahora todo bien, excepto por el hecho de que no puedo hacer que la página espere hasta que tengamos una respuesta. Ahora, en realidad tengo una buena razón para hacer esto; los tiempos de solicitud son de aproximadamente 2-10 ms debido a que va a 127.0.0.1, por lo que apenas se nota. Sin embargo, es lo suficientemente largo para que la página progrese lo suficiente como para llegar a una parte donde se necesita la respuesta.
Como puede ver, eso es una especie de problema.
Estoy usando la interfaz de socket JS normal en el cliente y una biblioteca golang websocket en el backend.
¿Algunas ideas?

about 4 years ago · Juan Pablo Isaza
2 Respuestas
Responde la pregunta

0

Simplemente incruste su parte donde se necesita una respuesta dentro

 socket.onmessage = function (msg) { // part where msg.data is needed }
about 4 years ago · Juan Pablo Isaza Denunciar

0

¿Está utilizando algunas bibliotecas web como ReactJs/VueuJs?

Si está utilizando alguna biblioteca que puede administrar el DOM del navegador, puede usar una estrategia Spinner. Wen, la primera representación de su página le envía al usuario por primera vez un Spinner y antes de que lleguen sus datos, quita el spinner y muestra su página. Si lo prefiere, puede usar un Esqueleto en lugar de la ruleta.

Si está utilizando reaccionar, puede hacer algo como esto.

 import { useState } from 'react' const Page = () => { const [loading, setLoading] = useState(true) cosnt [data, setData] = useState({}) useEffect(() => { socket.on('message', (data) => { setData(data) setLoading(false) }) }, []) return (<> { loading ? <Spinner /> : <Screen data={data} /> } </>) }
about 4 years ago · Juan Pablo Isaza 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