en pocas palabras.
Es la forma mas simple, entendible y mantenible de encadenar multiples promesas.
Encadenando Promesas
Para encadenar promesas basta con iniciar la ejecución de una y luego utilizando multiples .then() podemos controlar el orden de ejecución en forma lineal.
function req1(){
return fetch("http://somedomain/service1");
}
function req2(){
return fetch("http://somedomain/service2");
}
req1()
.then(function(response){
//resultado de la primera solicitud.
return req2();
})
.then(function(response){
//resultado de la segunda solicitud.
}); //podriamos seguir encadenando mas peticiones.
Para mas detalles acerca de las promesas les recomiendo leer este árticulo Promesas Javascript
Ahora con Async/Await
Se debe declarar una función con la palabra clave Async y luego por la ejecución de cada promesa se debe utilizar la palabra clave await.
function req1(){
return fetch("http://somedomain/service1");
}
function req2(){
return fetch("http://somedomain/service2");
}
Async function makeMultipleRequest(){
let result1 = await req1();
let result2 = await req2();
}
makeMultipleRequest();
Es tan simple como esto y como puede apreciarse el código es mas intuitivo.
Recomendación
Se presentó un ejemplo muy basico y cuyo objetivo es demostrar como Async/await permite encadenar promesas de una forma mas simple e intuitiva, pero aun hay mucho mas tema por ver, como que hacer en caso de error, diferentes forma de encadenar (a demas del sencuencial) entre detalles como el tipo de objeto que se crea y restricciones que puede tener esta implementación, por lo tanto los invito a seguir revisando mas acerca del tema y les recomiendo el siguiente documento https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/async_function
Conclusión
En lo posible debe utilizarse Async/Await para encadenar promesas debido a que es la forma mas simple, entendible y mantenible.
Gracias por leer.
Leave a Reply