Ahora tenemos nuestro simple juego femenino de poca edad juntos.
Si un usuario hace clic en el botón más de cinco veces, consideramos que tiene uno.
De lo contrario se pierden.
Así que el juego definitivamente funciona como está ahora.
Pero, al final de la última sección, comencé a pensar que tal vez la forma en que
escribimos este juego no era la mejor del mundo.
Deseché el caso en el que podríamos permitir que otros desarrolladores ejecuten este juego.
Bien, como nos gustaría publicar esto como una función o como un paquete independiente.
Entonces, otro desarrollador podría ejecutar el juego y luego tendríamos que permitirles especificar qué hacer cada
vez que el usuario completara o fallara el juego con éxito.
Así que pensar en esto desde el punto de vista de un diagrama es lo que estoy sugiriendo.
Estoy diciendo que quiero tener exactamente la misma experiencia de juego, pero quiero resumir toda la lógica
del juego en una única función representada por este tipo de fondo azul o cian.
Luego quiero permitir que otro desarrollador inicie el juego y especifique exactamente qué debería suceder si el
usuario tiene éxito en el juego o falla en el juego.
En otras palabras, quiero refactorizar nuestra base de código actual de todo lo que representa este juego en
una función única que se puede llamar donde otro desarrollador puede especificar qué hacer después de jugar
el juego.
Así que vamos a hacer este refactor.
Y luego, a medida que avanzamos, presentaremos el tema de las promesas y descubriremos cómo funcionan.
Así que vuelvo a mi código y, para empezar, vamos a hacer un poco
de refactor para poner todo nuestro juego en una función independiente.
Así que en la parte superior, debajo de la etiqueta de script, voy a declarar una función llamada inicio del juego.
Voy a colocar una llave de apertura.
Voy a tomar toda mi lógica de juego.
Voy a sangrar una vez y voy a cerrar esa llave.
Aquí abajo, al final, ahora todo mi juego está envuelto dentro de este comienzo.
Función de juego.
Así que ahora he tenido éxito en poner toda mi lógica de juego en una función independiente, pero esa función independiente
aún encapsula qué hacer en el caso del éxito y el fracaso solo para asegurarnos de que
todo funcione correctamente.
Voy a agregar una llamada para iniciar el juego debajo de la declaración de función.
Así que aquí abajo voy a llamar al inicio del juego como tal.
Y ahora, de vuelta en Chrome, actualizaremos el documento y nos aseguraremos de que todo funcione.
Así que aquí estamos todos los refrescos, vamos a esperar los dos segundos y OK, todo para el
juego sigue funcionando como lo esperaba.
Por lo tanto, nuestro código tal como está ahora, ya sabes, todavía funciona, pero no estamos proporcionando una interfaz agradable a
ningún otro desarrollador que quiera llamar a iniciar el juego.
Esa es toda la meta aquí.
Quiero especificar de alguna manera qué hacer cuando el usuario gana.
Cada vez que llamo al juego de inicio, así que vamos a presentar la idea de promesas que ahora promete.
Le he explicado a los desarrolladores muchas veces y cada vez que he explicado exactamente cómo se comportan
los procesos.
He descubierto que exactamente una cosa que dice cómo funcionan no no imparte conocimiento acerca de las
promesas.
En otras palabras, puedo sentarme aquí y dar una conferencia todo el día sobre lo que hace una promesa, pero no se traduce del todo.
Realmente tienes que ver estas cosas en acción.
Así que esto es lo que vamos a hacer.
En lugar de sentarme aquí y hablar de promesas sin parar, simplemente vamos a refactorizar nuestro código para hacer uso de una
promesa y, una vez que lo hagamos, una vez que lo tengamos en su lugar, haremos algunas
observaciones sobre cómo hacerlo. trabajos.
DE ACUERDO.
Entonces vamos a hacer el reactor primero.
Va a ser un poco misterioso, pero luego hablaremos exactamente de cómo está funcionando.
Así que para refactorizar nuestro código para usar promesas, comenzaré por eliminar todo el tiempo de espera establecido en el sistema interno y la
única razón por la que lo estoy eliminando es porque quiero escribir
esto desde cero para asegurarme de que sea realmente claro exactamente lo que está pasando
Así que en los lugares que establecen el tiempo de espera, escribiré una nueva promesa y notaré que estoy usando una P
mayúscula aquí.
Luego pasaré esta función de promesa o esta cosa de promesa, sea lo que sea aquí, una función de
flecha gruesa.
DE ACUERDO.
Así que acabo de pasar una grasa o una función así.
Cada vez que declaro una nueva promesa, esta función interna que le paso se llama con
resolución de dos argumentos y rechazo.
Ahora adentro, si va a colocar exactamente la misma lógica o casi la misma que teníamos antes con
el tiempo de espera establecido, diré set.
Se acabó el tiempo.
Voy a pasarle una función como segundo argumento.
Voy a decir 2000 milisegundos.
Luego, dentro del tiempo límite establecido, podemos decir si el contador es mayor que 5 y aquí es donde
las cosas se ponen interesantes en lugar de decir algo sobre alertas o algo así, voy a ver este
argumento.
Este argumento resuelto lo voy a llamar de nuevo.
Sé que estoy lanzando una tonelada de código que parece tan misterioso pero ten paciencia conmigo.
Vamos a terminar la implementación aquí y luego hablaremos sobre lo que está sucediendo ahora en las declaraciones L,
como es el caso en el que un usuario falla.
Quería agregar una llamada para rechazar Ahora un poco más.
Un poco más abajo, aquí abajo, donde llamo comenzar el juego nuevamente o muevo el punto y
coma al final y en su lugar, lo reemplazaré con una nueva línea de puntos.
Luego pasaré una función dentro de la cual te avisaré cuándo y luego una última cosa.
Una cosa menos allí conmigo.
El fondo.
Después de eso voy a agregar una captura y alerta que perdiste.
De acuerdo, muchos cambios que acabamos de hacer y muchas posibilidades parecen ser un poco raros.
Totalmente bien.
Totalmente lo que espero.
Primero ejecutemos esto dentro de nuestro navegador y verifiquemos que todo funciona y hablaremos exactamente de lo
que está sucediendo aquí.
Así que nos aseguraremos de que primero guarde el documento para que todo se guarde.
Va a volver a Chrome o actualizar el documento o hacer clic en el botón.
Bueno, supongo que no cociné y lo suficiente porque te vi por última vez.
Consigamos un caso ganador aquí.
Haga clic en haga clic en y usted gana.
Recuerda que para reiniciar el juego necesitas actualizar la actualización del navegador.
Haga clic en haga clic en y gano.
DE ACUERDO.
Así que claramente algo está funcionando bien aquí.
Claramente algo está funcionando todavía, pero qué diablos es esta promesa.
¿Qué es esto resuelto y rechazar lo que es esta furgoneta y no atrapar en la parte inferior.
Tomemos un breve descanso.
Volveremos y hablaremos exactamente sobre cómo funcionan las promesas y luego terminaremos con el repaso de las
promesas.
Solo una sección más se cerrará con nuestra actualización.
DE ACUERDO.
Nos vemos en un segundo.