-2
votes

Comment effacer l'intervalle après le changement de statut dans une réponse API?

Disons que j'ai un CheckStatus () méthode déclenchée après une réponse à un point final réussi. À l'intérieur, il existe un seinterval comme: xxx

essentiellement je interrogeons un point final toutes les 3 secondes. Une fois que le res.status devient vrai , je veux effacer l'intervalle. Le composant est toujours là et n'a pas encore démontré.

Comment puis-je réaliser cela?


1 commentaires

Utilisez ClearInterval () Comme expliqué ici développeur. Mozilla.org/de/docs/web/api/windowtimers/setInterv al


4 Réponses :


1
votes

Fondamentalement, vous devez affecter une valeur code> à la fonction setingerval code> et effacez-la dans votre rappel:

checkStatus() {
    const intervale = setInterval(() => {
      client
        .query({
          query,
          variables,
        })
        .then(res => {
          if (res.status) {
            console.log("FINISHED!");
            clearInterval(intervale)
          }
        });
    }, 3000);
 }


0 commentaires

1
votes

juste intervalle clair dans votre condition de contrôle.

Exemple: P>

checkStatus() {
  const interval = setInterval(() => {
    client
    .query({
      query,
      variables,
    })
    .then(res => {
      if (res.status) {
        console.log("FINISHED!");
        clearInterval(interval)
      }
    });
  }, 3000);
}


0 commentaires

1
votes

Vous devez d'abord stocker la référence renvoyée par setInterval et transmettez-la à ClearInterval pour effacer. Par exemple, stocker la référence dans une variable réf - xxx


0 commentaires

1
votes

Attribuez une variable à l'intervalle et effacez l'intervalle en fonction de la condition xxx


0 commentaires