Me encuentro con un comportamiento extraño en Lambda con Node 14.x. Tengo una función auxiliar a la que llama la función del controlador principal, y contiene un objeto de user definido fuera de un bloque try catch. Cuando lo registro, me devuelve un objeto, pero luego, inmediatamente dentro del bloque try catch, user no está definido. Es decir, me sale este error:
ReferenceError: Cannot access 'user' before initialization
Este no es el caso de cadenas y números, como lo demuestra id . Sin embargo, client también es un objeto, pero es accesible dentro de la captura de prueba, por lo que este comportamiento me confunde. Agradecería si alguien pudiera proporcionar alguna idea.
const helperFunction = async (payload, context, pool) => { let { user } = payload; let { id } = payload.user; console.log(user); // <-- this is is defined let client = await pool.connect(); try { console.log(client); // <-- this is defined console.log(id); // <-- this is defined console.log(user); // <-- this is throws reference error, cannot access before initialization ... } catch (e) { console.log(e); } Mi objeto user se ve así:
{ id: '16', email: 'example@gmail.com', subscriptions: [ '', 'a', 'b' ], iat: 1633376553 }