JavaScript Await Async, Simplificando Promesas
JavaScript Await Async, Simplificando Promesas
JavaScript Await Async son dos de las palabras reservas que se usan en JavaScript ES7 para
simplificar la gestión de la programación concurrente y que nos puede ayudar a simplificar
el manejo de peticiones AJAX y la gestión de promesas. Vamos a ver un ejemplo sencillo
,para ello partiremos de un servidor de Node.js que nos devuelve una lista de facturas.
app.listen(3000, function() {
console.log('Example app listening on port 3000!');
});
Lo único que tenemos es que disponer de una página html que haga una petición AJAX al
servidor y se traiga los datos de las Facturas.
www.arquitecturajava.com
JavaScript Await Async , simplificando promesas
<html>
<head>
<script type="text/javascript">
function cargaAjax() {
fetch("facturas").then(function(promesa) {
return promesa.json();
}).then(function(datos) {
console.log(datos);
})
}
</script>
</head>
<body>
<p>mipagina</p>
<table id="mitabla">
</table>
www.arquitecturajava.com
JavaScript Await Async , simplificando promesas
</html>
En este caso estamos ante una petición muy muy sencilla que se realiza usando el API de
Fetch de JavaScript ES6 que esta orientado al manejo de promesas. Solicitamos al servidor
las facturas y el API de Fetch enlazara una promesa. Esta promesa contiene los datos en
JSON que de igual manera se pueden procesar como una promesa. En principio parece un
poco engorroso comparado con una petición clásica de jQuery.
www.arquitecturajava.com
JavaScript Await Async , simplificando promesas
<html>
<head>
<script type="text/javascript">
async function cargaAjax() {
}
</script>
</head>
<body>
<input type="button" onclick="cargaAjax()" value="aceptar" />
</body>
</html>
Por lo tanto el primer paso es modificar el código para que soporte JavaScript Async Await.
En este caso lo que hacemos es marcar la función con la palabra reservada async. Esto ya
hace que cualquier navegador moderno de JavaScript considere la función asíncrona. Nos
queda aplicar await a cada una de los métodos que anteriormente soportaban el método
then.
<html>
<head>
<script src="https://code.jquery.com/jquery-3.4.1.min.js"></script>
<script src="https://unpkg.com/axios/dist/axios.min.js"></script>
<script src="lodash.js"></script>
<script type="text/javascript">
async function cargaAjax() {
www.arquitecturajava.com
JavaScript Await Async , simplificando promesas
</head>
<body>
<input type="button" onclick="cargaAjax()" value="aceptar" />
</body>
</html>
Poco a poco tenemos que irnos acostumbrando a usar más las capacidades modernas de
www.arquitecturajava.com
JavaScript Await Async , simplificando promesas
www.arquitecturajava.com