Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

223
Views
React.js y Firebase auth: ¿la función de devolución de llamada setTimeout no se ejecutó?

Tengo una función handleSubmit que maneja el registro en Firebase en un componente de reacción. En el interior, quiero manejar los errores con mi función setErrorTimeout , que tiene un setTimeout que restablece el error automáticamente después de 3 segundos en este caso.

El problema es que mi tiempo de espera no se ejecuta, por ejemplo, la función de devolución de llamada dentro del tiempo de espera no se ejecuta después de 3 segundos, pero todo lo demás sí... ¿por qué?

 const handleSubmit = async e => { e.preventDefault() console.log(formDetails) if (formDetails.password !== formDetails.passwordrepeat) { setErrorTimeout(setRegisterError, { message: 'Passwords do not match!', }) return } console.log('Try') console.log(formDetails.email, formDetails.password) try { auth.createUserWithEmailAndPassword( formDetails.email, formDetails.password ) .then(userCredentials => { if (userCredentials) { const user = userCredentials.user let success = user.sendEmailVerification() console.log('success register:', success) setRegisterSuccess( 'You registered successfully! please check your email!' ) setFormDetails({}) } }) .catch(error => { console.log('ERROR!') setErrorTimeout(error) }) } catch (e) { setErrorTimeout(e) } } const setErrorTimeout = error => { console.log('inside timeout!') setRegisterError(error) const timer = setTimeout(() => { console.log('inside cb!') setRegisterError(null) }, 3000) clearTimeout(timer) console.log('after timeout!') }
about 4 years ago · Juan Pablo Isaza
1 answers
Answer question

0

Está borrando el tiempo de espera justo después de crearlo aquí:

 const timer = setTimeout(() => { console.log('inside cb!') setRegisterError(null) }, 3000) clearTimeout(timer)

Probablemente desee que la llamada clearTimeout esté dentro de la devolución de llamada, aunque ni siquiera es estrictamente necesaria ya que el tiempo de espera ya se disparó.

about 4 years ago · Juan Pablo Isaza Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!