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

102
Vistas
Ejecute periódicamente useEffect para la llamada a la API de Dashboard

Estoy buscando llamar periódicamente a una API y devolver la respuesta para que se muestre en la página. Esta API es para obtener el recuento de mensajes en una cola de Azure y luego mostrarlo en mi tablero.

He intentado muchas opciones, pero parece que no puedo hacer que funcione. Estoy usando setIntervalAsync para llamar periódicamente a la API, pero actualmente solo regresa indefinido una vez. A continuación se muestra el código utilizado para realizar la llamada:

 export function Something() { useEffect(() => { setInterval(() => getProperties().then(data => {return data.Count}), 1000); }, [])}

Cualquier ayuda en esto será muy apreciada.

ACTUALIZACIÓN: Usando el código actualizado a continuación, ahora recibo la llamada periódicamente, pero parece que no puedo acceder a la pantalla.

 export const Queue = () => { const [count, setCount] = useState() useEffect(() => { const h = setIntervalAsync(() => { getProperties().then(data => { setCount(data.Count) console.log("First: " + count) }) }, 1000) console.log("Second: " + count) return () => { clearInterval(h) } }, [count]) console.log("Third: " + count) return <div>{count}</div> }

Aquí es donde llamo a la función:

 export let Content = () => { let count = Queue() console.log(count) return ( <div className="grid"> <h1 className="title">Queues</h1> <div className="row"> <div className="column"> <h3>count</h3> <h2 id='Count'>{count}</h2> </div> </div> </div> ); };

Aquí hay una captura de pantalla de lo que se devuelve de los registros de la consola:

ingrese la descripción de la imagen aquí

Como puede ver, se llama periódicamente dentro del useEffect pero no llega al exterior periódicamente, solo una vez

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

0

Creo que llamas al intervalo correcto, sin embargo, para pedirle a React que haga cosas, debes notificarlo. Suponiendo que pongas estas cosas en App .

 const App = () => { const [count, setCount] = useState(-1) useEffect(() => { const h = setInterval(() => { getProperties().then(data => { // trigger an update to screen setCount(data.Count) }) }, 1000) // clean interval upon dismount return () => { clearInterval(h) } }, []) // this is for you to see the work return <div>{count}</div> }

Agregué dos cosas además de tu trabajo:

  • setCount se usa para conectar su lógica con una actualización
  • useEffect devuelve una función de destrucción para limpiar cosas
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