En este capítulo hacemos el mismo ejercicio que en el capítulo anterior pero con las funciones asíncronas, veamos la sintaxis de los dos archivos que hemos de crear, peticionesasincronas.html y peticionesasincronas.js.
Sintaxis de peticionesasincronas.html.
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> <title>Peticiones asíncronas</title> </head> <body> <h1>Ajax</h1> <h2>Peticiones asíncronas</h2> <ol id="fetch-async"></ol> <script src="./03peticionesasincronas.js"></script> </body> </html>
Sintaxis de peticionesasincronas.js.
(() => {
const $fetchAsync = document.getElementById("fetch-async"),
$fragment = document.createDocumentFragment();
async function getData() {
try {
let res = await fetch("https://jsonplaceholder.typicode.com/user"),
json = await res.json();
if (!res.ok)
throw {
status: res.status,
statusText: res.statusText,
};
json.forEach((el) => {
const $li = document.createElement("li");
$li.innerHTML = `${el.name} -- ${el.email} -- ${el.phone}`;
$fragment.appendChild($li);
});
$fetchAsync.appendChild($fragment);
} catch (err) {
let message = err.statusText || "Ocurrió un error";
$fetchAsync.innerHTML = `Error ${err.status}: ${message}`;
} finally {
console.log(
"Lo que está en finally se ejecuta independientemente del try catch"
);
}
}
getData();
})();
