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

146
Views
la función regresa antes de que await haya resuelto la promesa

cuando llamo a UserService.signUp() desde index.js , mi var x no está definida. aparentemente mi función singUp() regresa a mi función router.post después de await await hash() . ¿Cómo puedo solucionar este problema? Me gustaría que la función signUp espere a que se complete la función hash , antes de que la función regrese.

índice.js:

 router.post('/register', (req, res) => { var username = req.body.username, password = req.body.password, email = req.body.email var x = UserService.signUp(username, password, email); console.log("debug") if (x.success) { ... } })

autenticación.js:

 async function signUp(username, password, email) { .... try { var salt = generateSalt() console.log("generated salt") var passwordHash = await hash(password, salt) console.log("generated hash") } catch (err) { console.error(err) } UserModel.createUser() return { success: true, description: 'User was created' } } function hash(password, salt) { return pbkdf2(password, salt, 10000, 64, 'sha512'); }

usuario.js:

 function createUser(username, email, salt, hash) { ... console.log("created user") return true }

salida actual (incorrecta):

 generated salt debug POST /register 200 17.164 ms - - generated hash created user

salida deseada:

 generated salt generated hash created user debug POST /register 200 17.164 ms - -
about 4 years ago · Juan Pablo Isaza
1 answers
Answer question

0

No estás esperando la función:

 var x = UserService.signUp(username, password, email);

Haga que la función contenedora sea async y await el resultado:

 router.post('/register', async (req, res) => { //... var x = await UserService.signUp(username, password, email); //... });

O agregue un .then() para manejar el resultado de la Promise :

 UserService.signUp(username, password, email).then(x => { console.log("debug") if (x.success) { //... } });
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!