¡Hola React Summit US! Les doy una cálida bienvenida a la charla de hoy. Hoy vamos a hablar de algo llamado Web API. Pero antes de hacerlo, necesitaremos dar un pequeño paso atrás y repasar algunos conceptos básicos de JavaScript.
Si vemos este ejemplo, y les hago la pregunta, ¿cuál sería el orden de los registros en la consola?, probablemente la mayoría de ustedes diría 1, 3, 2. Y eso es correcto. Pero, ¿cómo lo sabemos? ¿Cómo sabemos cómo se comporta setTimeout?
Como sabemos, JavaScript es un lenguaje de un solo hilo. Vamos a visualizar esto un poco. Hay una pila de llamadas, ejecutamos la primera función que es sincrónica, y luego registramos el 1 como valor inmediatamente. Pero la segunda es asíncrona, y necesita ir a otro lugar, para no bloquear ese único hilo. Y va a la cola una vez que el temporizador ha terminado. Mientras tanto, la pila de llamadas continúa ejecutando las funciones, luego el bucle de eventos verifica si la pila de llamadas está vacía, y devuelve la devolución de llamada con el valor de 2. Pero la pregunta principal es, ¿dónde espera el setTimeOut mientras continuamos con la ejecución de nuestro código?
Si buscamos esta función en Google, el primer resultado que obtenemos es este. Así que hay una documentación de MDN donde podemos ver algunas cosas sobre la función setTimeOut. Y aquí podemos ver que está bajo una pestaña llamada WebAPIs. Si hacemos clic en eso, podemos ver que básicamente las WebAPIs es una colección, una lista de APIs e interfaces que podemos usar directamente al desarrollar aplicaciones web. Básicamente, es una funcionalidad proporcionada por los entornos de runtime. En este caso, nuestros navegadores. Y si nos desplazamos un poco, podemos ver que hay muchas APIs, una lista realmente, realmente larga de APIs. Y aquí podemos observar que hay algunas APIs bastante conocidas y utilizadas, como WebRTC, almacenamiento de sesión, almacenamiento local, API de carga de archivos, una API DOM, y así sucesivamente. Pero al mirar esta lista, me preguntaba, ¿cuáles son algunas de las APIs exóticas y no tan comúnmente utilizadas que podríamos usar y que podrían dar a nuestra aplicación web ciertos superpoderes en ciertos casos de uso? Así que básicamente, estamos aquí para averiguar eso hoy. Y como hemos establecido, la respuesta a esta pregunta sobre setTimeout es Web API, que es básicamente una colección de interfaces incorporadas que permiten a los desarrolladores interactuar con nuestras páginas y proporcionar alguna funcionalidad interesante.
Voy a presentarme rápidamente. Cuando estaba en la escuela secundaria, siempre quise estudiar psicología. Ahora trabajo en mi trabajo soñado en Wega IT con sede en Noišac, Serbia, donde trabajo como desarrollador, lo que significa que enseño a las personas soft skills, cómo comunicarse con los clientes, cómo lidiar con el estrés, cómo hacer presentaciones como esta, por qué no, y así sucesivamente. Mi nombre es Nikola Mitrović y estos son mis aspectos destacos de las Web APIs para ustedes hoy. OK, ahora vamos a nuestro primer ejemplo para hoy. Digamos que tenemos una página como esta y no hay nada allí excepto el fondo, pero una vez que nos desplazamos un poco hacia abajo podemos empezar a observar que hay algo en la esquina inferior izquierda. Es un pequeño astronauta, que cuando está completamente visible dice, hola mundo. Una vez que nos desplazamos un poco hacia arriba y el astronauta no está completamente visible, el mensaje desaparece. Nos desplazamos de nuevo un poco hacia abajo y de nuevo, una vez que el astronauta está completamente visible de nuevo dice hola mundo.
Comments