Es bueno entender que async/await hace parecer al proceso síncrono, por lo que algunos beneficios de la concurrencia se pueden perder.
Como decia tio Ben:
Todo poder conlleva una responsabilidad
Aquí dejo un ejemplo:
const print = (msg) => {
console.log(msg);
return msg;
}
const future_message = () => {
returnnew Promise((resolve, reject) =>
setTimeout(() => resolve(print("Genesys is Skynet")), 3000));
}
async function main(){
const msg = await future_message()
console.log("Hello to the program!")
console.log("msg: ", msg)
}
main()
El programa imprimirá
Genesys is Skynet
Hello to the program!
msg: Genesys is Skynet
Si usamos then en lugar de await
const print = (msg) => {
console.log(msg);
return msg;
}
const future_message = () => {
returnnew Promise((resolve, reject) =>
setTimeout(() => resolve(print(“Genesys is Skynet”)), 3000));
}
function main(){
future_message().then((msg) =>console.log("msg: ", msg));
console.log(“Hello to the program!”)
}
main()
la salida será:
Hello to the program!
Genesys is Skynet
msg: Genesys is Skynet```
Entendiendo la naturaleza del programa podemos combinar los dos métodos de la mejor manera