Actividades Sesión Avanzada
const person {
name: “Lucas”,
age: 27,
profession:”Developer",
}
// return -> ["name", "age", "profession"]
cadenaInvertir que sea una cadena vacía.cadenaInvertir e imprima en pantalla el resultado invertido. Ej "Hola
mundo" quedaría "odnum aloH".cadenaInvertir es vacío, lance un error (throw).
Ej. "". throw error.invertirCadena.Ejecuta primero la función sin cambiar cadenaInvertir. ¿Cómo podemos hacer para que
nuestro código no rompa al ejecutarse?. Ahora cambia el valor a cadenaInvertir y
vuelve a llamar la función. ¿Cuál es el resultado?. Por último, intenta acceder al siguiente
método invertirCadena.nuevoMetodo(). ¿Cómo podemos hacer para que no de un error?
let login = new Login(“admin”, “passwd”) // alert -> User logged in
let logbad = new Login(“pepe”, “bad”) // alert -> User or passwd incorrect
En este ejercicio os voy a hacer mirar un poco de documentación extra. Y vamos a utilizar el
fichero que se encuentra en activity/2_session/index.html:
En este ejercicio vamos a añadir asincronía al resto de botones:
Crea dos clickListener, para los botones con id
loginSuccessAsync y loginFailureAsync. En el primero
llamaremos a la función loginWitUsername para que de el resultado correcto.
En el segundo llamaremos a la función con parámetros incorrectos. Os dejo un par de
pistas para resolver el ejercicio.
Primero, addEventListener('click', () => {}) no acepta asincronía
ya que es una función síncrona. Pero es posible sustituir el segundo
argumento () => {} que es una función, por una función asíncrona (solo
habría que añadir una palabra reservada).
loginWithUsername devuelve una promesa, que lanza una excepción si falla,
por lo que habría que atrapar esa excepción para que nuestro programa no
falle.
/activity/2_session/index.js
// Ejercicio 1
// Ejercicio 2
// Ejercicio 3
// Ejercicio 4
// Ejercicio 5
// Ejercicio 6
let loginWitUsername = (username, password) => {
return new Promise(function (resolve, rejected) {
setTimeout(() => {
if (username === "admin" && password === "passwd") {
resolve("User logged in");
} else {
rejected("Error: invalid username or password");
}
}, 200);
});
};