Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

147
Visualizações
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 Respostas
Responde à pergunta

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 Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda