Quiero llamar a mi API cada 20 segundos desde el momento en que se procesa el componente y la llamada a la API tiene que detenerse cuando proporciona una respuesta específica.
Explicando más. Hay un método de obtención de API que enviará una respuesta como la siguiente. {firstWork: 'Success', SecondWork: 'Success', ThirdWork: 'IN-Progress'}
Por lo tanto, quiero llamar a esta API periódicamente/repetidamente (cada 20 segundos) desde el punto en que se representa el Componente y hasta que todo esto se convierta en 'Éxito'. {primerTrabajo: 'Éxito', SegundoTrabajo: 'Éxito', TercerTrabajo: 'Éxito'}
Cuando recibo la respuesta anterior, debo dejar de llamar al método de obtención de la API. ¿Cómo puedo lograrlo en ReactJS?
Puede lograrlo configurando un setInterval dentro de su componente.
import { useEffect } from "react" const Component = () => { useEffect(() => { const interval = setInterval(() => { fetch("/yourApiEndpoint") .then(res => res.json()) .then(json => { if(json.thirdWork === "Success"){ clearInterval(interval) } }) }, 20*1000) },[]) return <p>component</p> }