2 votes

Trigger Callback pour la fonction Async await qui est appelée lors de l'événement focus

J'essaie d'appeler une fonction 'handleCb' sur le focus de la page. Cette fonction handleCb est une fonction asynchrone et à son retour, je veux appeler une autre fonction 'showResult'. Le problème est que la fonction cb showResult n'est pas déclenchée après la première fois, ce qui est compréhensible car elle ne fait pas partie de l'événement focus. Comment contourner ce problème ? C'est à l'intérieur d'un composant React.

useEffect(() => {
  window.addEventListener('focus', handleCb)
  // I need a way to trigger below after later 'focus' events.
  handleCb().then((result) => showResult(result)) 
}, [])

const handleCb = async () => {
  return await Promise.resolve('good job')
}

Un peu plus de contexte : showResult ne peut pas être appelé à l'intérieur de handleCb.

3voto

Dharmik Patel Points 269

Vous pouvez y parvenir en appelant les deux fonctions à l'intérieur de focus eventListener

useEffect(() => {
  window.addEventListener('focus', () => {
    return handleCb().then((result) => showResult(result)) 
  })
}, [])

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X