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

156
Views
No se puede devolver valor dentro de la función asíncrona

Tengo un archivo dedicado a manejar las funciones de autenticación para mi aplicación React Native. Una de estas funciones getJWToken es una función asíncrona anónima que intenta obtener el token de usuario actual por los siguientes medios:

 const auth = db.auth() // db === (Firebase.apps.length === 0 ? Firebase.initializeApp(config) : Firebase.app()) // the configuration of the Firebase DB occurs in a config file and db is exported. const getJWToken = async () => { auth.onAuthStateChanged(function(user) { if (user) { user.getIdToken() .then(function(idToken) { return idToken; }) .catch( (error) => { console.log("Cannot get User Token: ", error); } ) } }); }

A través de console.log puedo ver que la función devuelve el token como se supone que debe hacerlo. Los problemas llegan cuando lo estoy usando en otra función asíncrona en otro archivo así:

Carpeta de servicio index.js

 import * as Auth from './AuthServices' export {Auth}

Aplicación.tsx

 // App.tsx import {Auth} from './src/services' // The rest in inside an Async Function signOut: async () => { let token token = await Auth.getJWToken() console.log("token: ", token) // results in undefined }

El token da como resultado undefined . No tengo forma de devolver el valor del token de la función de promesa. Intenté usar return on auth.onAuthStateChanged pero eso da como resultado que el token se evalúe a [Function Bound] . await on auth.onAuthStateChanged tampoco hace nada. Estoy realmente perplejo.

about 4 years ago · Juan Pablo Isaza
2 answers
Answer question

0

Tienes que regresar en dos lugares más como se muestra en el código. Por favor responda con esta modificación, envíenos c

 const auth = db.auth() // db === (Firebase.apps.length === 0 ? Firebase.initializeApp(config) : Firebase.app()) // the configuration of the Firebase DB occurs in a config file and db is exported. const getJWToken = async () => { return auth.onAuthStateChanged(function(user) { if (user) { return user.getIdToken() .then(function(idToken) { return idToken; }) .catch( (error) => { console.log("Cannot get User Token: ", error); } ) } }); }

about 4 years ago · Juan Pablo Isaza Report

0

Si bien ya no uso este fragmento de código, pude resolverlo así:

 getJWToken export const getJWToken = async () => { let result; // await is needed here await auth.onAuthStateChanged(function(user) { if (user) { console.log("user") // save this promise to result result = user.getIdToken() .then(function(idToken) { return idToken; }) .catch( (error) => { console.log("Cannot get User Token: ", error); } ) } }); // return the user.getToken() promise return result
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!