Problemas con async y await en js: ¿Asincrónico, indefinido?
Esto se debe a que sus funciones a, b, c no tienen valor de retorno (el valor de retorno de setTimeout no es equivalente al valor de retorno de la función), por lo que, por supuesto, no están definidas. Según la sintaxis de ES7, el valor de retorno de las funciones a, b, c debe ser un objeto de promesa. El siguiente es el código correcto:
async function a() {
return new Promise(res=>{
setTimeout(()=>res( " a"),3000)
})
}
función asíncrona b() {
devolver nueva promesa(res= > {
setTimeout(()=>res("b"),2000)
})
}
async función c() {
return nueva Promesa(res=>{
setTimeout(()=>res("c"),1000)
} )
}
función asíncrona d() {
dejar a1 = esperar a()
dejar b1 = esperar b( )
let c1 = await c()
console.log(a1,b1,c1)
}
d()