Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

339
Vistas
Getting response from nested Async funtion in React

I have 3 function to login a user on my React web application.

  1. Function C: Calling Login function from Login HTML Page

 const handleLogin = (e) => {
        e.preventDefault();

        //  Calling FUNCTION B
        loginUser({ email, password }).then((value) => console.log('in promise then : ' + value));
    
        console.log('in login page: ' + response);
    };
  1. Function B: Making authorization

export async function loginUser(loginPayload) {

     //  Calling FUNCTION C
     AuthDataService.login(loginPayload)
      .then((response) => {
          var modifiedResponse = response;
          console.log('in AuthDataService: ' + JSON.stringify(modifiedResponse));
          return modifiedResponse;
      });
}
  1. Function A: Calling Server

class AuthDataService {
  async login(data) {
    return await http.post('/login', data).then((response) => {
        return response;
    });
  }
}

Problem is that, in Function B response is logged correctly but in Function A response(value) is undefined. Shouldn't function C wait until Function B is finished? What should I change?

about 4 years ago · Juan Pablo Isaza
2 Respuestas
Responde la pregunta

0

You are not returning anything from loginUser function.

NOTE: No need for async if are using .then

Refactoring you can do like below

export function loginUser(loginPayload) {
  //  Calling FUNCTION C
  return AuthDataService.login(loginPayload).then((response) => {
    var modifiedResponse = response;
    return data; // not sure from where it's coming
  });
}

class: no need to then if you are not doing anything with response.

login(data) {
    return http.post('/login', data);
}
about 4 years ago · Juan Pablo Isaza Denunciar

0

First: in handleLogin you're not assinging anything to the response value. Second: in loginUser and login you're not returning any value.

you can try this:

const handleLogin = async (e) => {
  e.preventDefault();

  const response = await  loginUser({ email, password }).then((value) => console.log('in promise then : ' + value));

  console.log('in login page: ' + response);
};

export const loginUser = async (loginPayload) => {
  return AuthDataService.login(loginPayload).then((response) => JSON.stringify(response));
}

class AuthDataService {
  async login(data) {
    return await http.post('/login', data)
  }
}

about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda