Tener esta pequeña función Lambda:
module.exports.handler = async( data , ctx, cb) => { console.log("start"); createSth(); }; async function resolveAfter2Seconds(x) { console.log("in function: " + x); return new Promise(resolve => { setTimeout(() => { resolve(x); }, 2000); }); } async function createSth() { var x = await resolveAfter2Seconds(10); console.log(x); // 10 }Hubiera esperado el siguiente resultado
start in function: 10 10pero solo obtengo
start in function: 10 Así que todo después de var x = await resolveAfter2Seconds(10); no se ejecuta.
Funciona fuera de aws lambda en una configuración similar.
Gracias.
Agregue la palabra clave await mientras llama a la función createSth . Esto permitirá que la función principal espere la ejecución de la función y no regrese
es decir
module.exports.handler = async( data , ctx, cb) => { console.log("start"); await createSth(); };