Tratar de aprender JavaScript async/await adecuado para ejecutar funciones en secuencia cuando una función temprana en la secuencia se retrasaría (usando setTimeout para simular). No obtengo los resultados esperados (todavía obtengo "primero", "segundo", "¿esto debería ejecutarse primero?" - Ver código).
¿Qué me estoy perdiendo? ¿Tengo una idea equivocada sobre esto?
¡Gracias por adelantado!
const zeroFunction = () => { setTimeout(() => { return new Promise((resolve) => { console.log("This should run first?"); resolve(); }); }, 2000)} const firstFunction = () => { return new Promise((resolve) => { console.log("first"); resolve(); }) } const secondFunction = () => { return new Promise((resolve) => { console.log("second"); resolve(); }) } async function fnAsync() { await zeroFunction(); await firstFunction(); secondFunction(); } fnAsync();zeroFunction actualmente está devolviendo undefined implícitamente, no una Promesa. Invierta el ajuste del constructor setTimeout y Promise y debería funcionar como se esperaba.
const zeroFunction = () => { return new Promise((resolve) => { setTimeout(() => { console.log("This should run first?") resolve() }, 2000) }) } const firstFunction = () => { return new Promise((resolve) => { console.log("first") resolve() }) } const secondFunction = () => { return new Promise((resolve) => { console.log("second") resolve() }) } async function fnAsync() { await zeroFunction() await firstFunction() secondFunction() } fnAsync()