Estoy haciendo un pequeño proyecto personal, una "escape room" virtual, para aprender un poco más sobre JavaScript y algunas librerías. En una de las pruebas, aparecería un mensaje que se iría escribiendo solo (usando la librería TypeIt). Ese texto haría ciertas preguntas que el usuario debería resolver (por ejemplo, introducir algún texto en un input). Si la "contraseña" es correcta, la pantalla escribiría más y la prueba sería completada.
La librería incluye una función, .exec()
, la cuál me permite ejecutar asincrónicamente una función. Pensé en usar eso para parar la ejecución del programa, y reanudar la acción cuando el objetivo estuviera completo. Eso funcionaría si la función fuera sincrónica, pero .exec()
es asincrónico, y por lo que he investigado, el programa llamaría a la función pero seguiría ejecutándose lo de luego.
Me gustaría preguntar cómo conseguir mi objetivo, para entender más acerca de los programas asíncronos. Aquí dejo mi código:
const instance = new TypeIt("#elementToType",{})
instance
.type("¡Bienvenido! ")
.pause(2500)
.type("¿Eres tú?")
.exec(async () => await tellMe())
.pause(1500)
.type("¡Correcto!")
.go()
function tellMe() {
console.log("¡Hola!")
// Aquí, por ejemplo, me gustaría que el usuario escribiera en un input
// y se comprobase si el texto es el correcto, si es así, sigue ejecutando el código.
}
<script src="https://unpkg.com/typeit@8.0.3/dist/index.umd.js"></script>
<span id="elementToType"></span>
Agradecería mucho ayuda para entender cómo usar correctamente el asincronismo. Muchas gracias.