Master asincrónico JavaScript de manera est más fácil, promesas, Asynchronous | Code Bless You | Skillshare
Menú
Buscar

Velocidad de reproducción


  • 0.5x
  • 1x (Normal)
  • 1.25x
  • 1.5x
  • 2x

Master asincrónico JavaScript de manera est más fácil, promesas, Asynchronous

teacher avatar Code Bless You, Making Coding Easy To Learn

Ve esta clase y miles más

Obtenga acceso ilimitado a todas las clases
Clases enseñadas por líderes de la industria y profesionales activos
Los temas incluyen ilustración, diseño, fotografía y más

Ve esta clase y miles más

Obtenga acceso ilimitado a todas las clases
Clases enseñadas por líderes de la industria y profesionales activos
Los temas incluyen ilustración, diseño, fotografía y más

Lecciones en esta clase

    • 1.

      Introducción

      0:33

    • 2.

      Sincrónico vs asincrónico

      4:22

    • 3.

      Reacciones de llamada

      4:13

    • 4.

      Resolver el infierno de la devolución de llamada

      3:06

    • 5.

      Implementar promesas

      4:27

    • 6.

      Ejercicio y solución

      2:28

    • 7.

      Async Await: [la mejor manera de manejar las promesas]

      3:24

    • 8.

      Recap todos los conceptos

      1:44

  • --
  • Nivel principiante
  • Nivel intermedio
  • Nivel avanzado
  • Todos los niveles

Generado por la comunidad

El nivel se determina según la opinión de la mayoría de los estudiantes que han dejado reseñas en esta clase. La recomendación del profesor o de la profesora se muestra hasta que se recopilen al menos 5 reseñas de estudiantes.

149

Estudiantes

--

Proyectos

Acerca de esta clase

En esta clase de JavaScript, vamos a aprender cocepts Asynchronous de JavaScript como:

  • Reacciones de llamada
  • Infierno de la llamada
  • Promesas
  • Async/Await

Estos conceptos te ayudarán mucho cuando aprendes ReactJS o NodeJs. Después de completar esta clase, podrás escribir el código asincrónico limpio y mantenido.

Clases de clase:

  1. Introducción a esta clase
  2. Sincrónico vs asincrónico
  3. Reacciones de llamada
  4. Resolver el infierno de la llamada
  5. Promesas
  6. Ejercicio para las promesas
  7. Async/Await
  8. Recap todos los conceptos

Descarga la carpeta de recursos de la sección de proyecto.

Conoce a tu profesor(a)

Teacher Profile Image

Code Bless You

Making Coding Easy To Learn

Profesor(a)

Hi! I'm a passionate software engineer from Code Bless You and I love to teach about coding and general skills in less time. I've taught many people how to become professional software engineers.

My goal is to make coding fun for everyone. That's why my courses are simple, animated, and with practical implementation.

Learn by doing

Step-by-step tutorials and project-based learning.

Get support

One-on-one support from experts that truly want to help you.

don’t stress. have fun.

I can't wait to see you in class!

- Code Bless You

Ver perfil completo

Level: Beginner

Valoración de la clase

¿Se cumplieron las expectativas?
    ¡Superadas!
  • 0%
  • 0%
  • Un poco
  • 0%
  • No realmente
  • 0%

¿Por qué unirse a Skillshare?

Mira las galardonadas Skillshare Originals

Cada clase tiene lecciones cortas y proyectos prácticos

Tu membresía apoya a los profesores de Skillshare

Aprende desde cualquier lugar

Ve clases sobre la marcha con la aplicación de Skillshare. Progresa en línea o descarga las clases para verlas en el avión, el metro o donde sea que aprendas mejor.

Transcripciones

1. Introducción: Bienvenido a la clase JavaScript asíncrona. En esta clase, vamos a aprender callbacks, promesas, y espera asíncrona, que son los temas más importantes para los desarrolladores de JavaScript, especialmente aquellos que quieren dominar, reaccionar o nodo. Si estos conceptos están despejados, entonces usted puede aprender fácilmente otros conceptos en React y node. Sí, obtendrás todos los recursos para el ejercicio y el dígito de estos conceptos en la sección de proyectos. Entonces no perdamos el tiempo y empecemos. 2. Sincrónico vs asíncrono: Entonces, en primer lugar, vamos a entender la diferencia entre sincrónico y asíncrono. Por lo que aquí creo el archivo index.html. Y en esta carpeta JavaScript, tenemos el archivo script.js. Y vinculé este archivo JavaScript con nuestro archivo HTML. Ahora copiemos esta ruta de archivo HTML y peguémosla en el navegador. Y abramos tarifa de consola. Ahora en este archivo JavaScript, escribo console.log primera línea. Después de eso, otro console.log última línea. Entonces este es el ejemplo de código síncrono o código de bloqueo. Porque cuando se ejecuta esta primera línea, el código está bloqueando. Y esta última línea tiene que esperar hasta que esta primera línea termine la tarea. Por otra parte, contempló programa asíncrono o no bloqueante. Déjame mostrarte el ejemplo de código asíncrono. En JavaScript. Tenemos una función llamada setTimeout. Ahora el primer argumento es función, y el segundo argumento es tiempo para retardo. Digamos 2 mil milisegundos, que son dos segundos. Después de dos segundos, esta función se ejecutará. Entonces imagínense aquí que estamos obteniendo datos de base de datos, que tarda dos segundos. Ahora, ¿puedes adivinar lo que obtenemos en la consola? A ver. Entonces refresco la página y veo que obtenemos primera línea y última línea. Y después de dos segundos, obtenemos esto obteniendo datos de la base de datos. Por lo que antes que nada, esta primera línea se ejecutará. Entonces llamamos a esta función setTimeout. Esta función programará una tarea, realizará en el futuro. Esto no bloquea el objetivo, y por eso lo llamamos código no bloqueante o asíncrono. Entonces cuando ejecutamos este código, obtenemos esta primera línea, luego inmediatamente última línea. Y después de dos segundos, obtenemos esta línea. Entendamos esto con el ejemplo de la vida real. Aquí hay un restaurante de un solo. El mesero acude a la Mesa uno y les toma orden. Ahora mesero dar esta orden a la cocina y luego pasar a la mesa 2 u otra orden. Por lo que hay un evaluador que puede atender a más clientes. Entonces este es el ejemplo de asíncrono. Ahora que es un otro diagrama de rayos de restaurante a la mesa uno y tomar orden de ellos. Ahora mesero dar esta orden a la cocina y luego esperar a que el código esté listo. No está tomando orden de otra mesa. Entonces el sistema de restaurantes se va a bloquear por esto. Y este es el ejemplo de blogging o score síncrono. Entonces síncrono o asíncrono es el tipo de código. Ahora aquí, hagamos este ejemplo más realista. Así que creo una función llamada get student y muevo esta función de tiempo de espera dentro. Esta función devolverá aquí los datos del nombre del objeto del estudiante, bob, un ID a uno. Ahora, llamemos a esta función aquí y almacenemos este valor en una variable llamada student. Y después de eso, simplemente registramos a la estudiante, Sylvia, asumiendo que estamos obteniendo datos de la base de datos. Y toma dos segundos, guarda esto y actualiza la página. ver, obtenemos a este alumno como indefinido porque esta función se está ejecutando después de dos segundos. Entonces cuando llamamos a esta función, estos datos escritos no están disponibles. Si queremos devolver un valor de esta función, entonces usted tiene la declaración return correcta aquí. Pero eso no es lo que queremos porque estamos obteniendo datos de la base de datos. Y puede tardar una vez más, esos segundos o más que eso. Entonces es por eso que usamos setTimeout para agregar retraso en esta tarea. Ahora bien, ¿cómo podemos conseguir aquí estos datos de los estudiantes? Por lo que hay tres métodos para manejar código asíncrono. Te esperan devoluciones de llamada, promesas y asíncrono. Entonces comencemos con las devoluciones de llamada. 3. Los retrocesos de llamada: Lo que se llama devolución es una función que se ejecuta. He hecho otra función terminada la ejecución. En otras palabras, cualquier función que pasemos como argumento a otra función. Por lo que llamamos a esa función como una devolución de llamada. Déjame mostrarte. Asíque solo agrego aquí id parámetro y compra este id aquí. En función, pasamos uno, que olvidé agregar. Entonces, para aplicar callback, tenemos que hacer la definición de la función de poco gen. Por lo que agrego aquí argumento llamado de vuelta. Ahora estas callback es función. Por lo que llamamos a esta función mientras se imprimen datos. Entonces después de esta consola, agregamos callback y Galia. Esta función aquí ahora compra los datos del estudiante en esta devolución de llamada. Y quitemos este retorno. Ya no lo necesitamos. Ahora no estamos devolviendo nada de esta función GetString. Por lo que ya no necesitamos almacenar este valor de función en variable. Ahora para nuestro segundo argumento, tenemos que pasar la función que uso aquí en una función y mover estas consola en esta función. Ahora, vamos a obtener los detalles del estudiante como parámetro de estudiante. Ahora podrías pensar que esto es confuso, pero confía en mí, esto no lo es. Déjame explicarte desde Inicio. Aquí. Estamos llamando a este boceto para ejecutar función, y pasamos éste como IID. Por lo que después de dos segundos, engendra consola esta línea. Y después de eso, se ejecutará esta función de devolución de llamada, que pasamos un segundo argumento. Entonces obtenemos estos datos de objeto en esta variable aleatoria dos. Y entonces podemos resolver este dato estudiantil simple como eso. Así que guarda esto y refréscate en el navegador. ver, obtenemos esta primera línea, última línea. Y después de dos segundos, obtenemos esta línea. Mediante el uso de esta técnica. No obtenemos datos indefinidos como obtuvimos anteriormente. Esta función de devolución de llamada se ejecutará después de dos segundos. Ahora la parte divertida es que ya usas devoluciones de llamada en tu código antes de este tutorial. Así que presta atención a la sintaxis de la función setTimeout. El mejor argumento es la función, y el segundo argumento es el tiempo. Entonces sabemos que cuando pasamos función como parámetro en otra función, entonces llamamos a esta función como devolución de llamada. Ahora, imagínense aquí queremos obtener otro dato del alumno, digamos información de materia del alumno. Así que creo otra función llamada consigue objetos y sesgo aquí, id, que es ID de estudiante. Ahora dentro de esta función, estamos asumiendo que la agregación de datos nuevamente desde la base de datos. Así que agrego aquí setTimeout y Baz funcionan como primer argumento. Y dos segundos. Ahora aquí, primero consola consiguiendo materia de estudiante y paso aquí esta identificación. Y no hice materias como matemáticas, ciencias, informática, etc. Ahora, vamos a llamar a esta función aquí y pasar ID, que es estudiante dot ID. Pero como sabemos, no obtenemos datos de inmediato. Por lo que usamos callback. Entonces aquí le agregamos callback. Y antes de escribir, llamamos a esa función de devolución de llamada y pasamos esta matriz en esta devolución de llamada. Y remoto está escrito. Ahora definamos aquí la devolución de llamada y obtengamos estos sujetos que están en la variable sujetos. Y después de eso, podemos consolar a los temas, guardar esto, y refrescar la página. Ves, ¿qué debemos conseguir? Línea de poste, última línea. Después de dos segundos, obtenemos datos de los alumnos, y después de otros dos segundos obtenemos datos de asignaturas. 4. Cómo resolver el infierno de llamada: Ahora hay algunos problemas con las callbacks. Deja que te explique. Aquí. Digamos que queremos obtener marcas de estos temas. Así que rápidamente creo una función llamada getMax y paso objeto como parámetro y llamo de vuelta. Ahora solo copio esta función setTimeout y la pego aquí. Cambiemos el mensaje de la consola, que está sacando marcas. Y sesgo aquí sujeto y sesgo max en esta devolución de llamada, digamos 80. Ahora llamamos a GetMax y pasamos aquí sujeto en índice 0 y luego redefinimos nuestra devolución de llamada para imprimir. Esto marca. Entonces escribe marca console.log. Ves que hay una estructura anidada porque estamos llamando a múltiples callback en una devolución de llamada. Y esto hará que nuestro código sea difícil de mantener y entender. Este problema se conoce como Callback ****. Esto no lo es, tenemos una puntuación asíncrona. Entonces si todas estas funciones son síncronas, nuestro código se ve así. Se puede ver cómo este código síncrono es fácil de entender y mantener. Entonces para resolver este problema de devolución de llamada ****, haremos función anónima para nombrar función. En otras palabras, como declaramos aquí, función de devolución de llamada, que es función anónima porque es no tienen nombre y definirlos por separado como se llama la función. Por lo que definimos aquí la función llamada display max y obtenemos Mark como parámetro. Simplemente consola esta función de visualización de marca malloc es la misma que esta devolución de llamada. Entonces vamos a reemplazarlo con nuestra función. Ahora aquí definimos una función llamada sujetos de visualización. Y obtenemos temas como parámetro aquí y copiamos estas dos líneas desde aquí, y lo pegamos dentro de nuestra función de sujetos de visualización. Entonces esta función es la misma que esta devolución de llamada. Podemos sustituirlo por temas de pantallas. Ahora mismo para esta devolución de llamada. Creamos una nueva función llamada display student y obtenemos los datos de los estudiantes como parámetro. Y luego simplemente copiamos esto y lo pegamos aquí. Ahora bien, podemos sustituir esta devolución de llamada por este estudiante desplazado. Tenga en cuenta que no estamos llamando a esta función. Simplemente pasamos referencia aquí y vemos que no tenemos esa estructura anidada. Por lo que copio este código en nuevo archivo llamado callbacks ab.js. Por lo que puedes referirte a esta puntuación en el futuro. Ahora este enfoque no es ideal, pero es mejor que Callback ****. Entonces esa es una mejor manera de lidiar con código asíncrono mediante el uso de promesas. 5. Implementar promesas: Entonces, ¿qué es la promesa? Una promesa es un objeto que es capaz contener el resultado de una operación asíncrona. En otras palabras, Rami se te promete darte el resultado de la operación asíncrona o darte error. Déjame explicarte con un ejemplo. Aquí. Creo nuevo archivo llamado Promises ab.js y lo vinculo con nuestro archivo index.html. Ahora para crear promesa, reescribe nueva palabra clave, y luego promete. Ahora esta función de promesa toma un argumento que es función con dos parámetros. Aquí. Se resuelve el primer parámetro y se rechaza el segundo. Y función de flecha. Dentro de esto, escribimos nuestra puntuación asíncrona. Aquí. Nuevamente, estamos asumiendo que estamos obteniendo datos de la base de datos. Por lo que escribimos aquí setTimeout y barras función y dos segundos. Ahora, imagina aquí que obtenemos nuestros datos de la base de datos. Así que creo una variable llamada student equals to object, digamos id2, un nombre para Bob. Ahora escribimos aquí resuelto porque logramos obtener datos y pasamos aquí la variable estudiante. Ahora hagamos esta promesa en variable llamada promesa. Y vamos a consumir esta promesa. Te lo prometo, que es la variable punto. Aquí. Tenemos dos métodos principales entonces y obtener. Entonces cuando creamos promesa, está en estado pendiente. Y si completamos las tareas asíncronas, entonces Brahmins en estado cumplido. Y si eso es un error, entonces Brom está en estado rechazado. Aquí, nuestra promesa cumplida porque llamamos aquí resuelta. Entonces cuando se cumple la promesa, entonces obtenemos nuestros datos en este método de banda. Ahora almacenamos nuestros datos en el parámetro de resultado y luego simplemente consolaremos este resultado. Guarde esto, y a ver después de dos segundos, obtenemos este resultado. Ahora imagina por alguna razón, no obtenemos datos de la base de datos. Por lo que comento estas líneas y llamo aquí rechazar función. Ahora para una mejor práctica, cada vez que creamos nuevo error y sesgamos nuestro mensaje de error aquí. Guarde los cambios y reprima la página. ver, aquí obtenemos este error. Ahora, veamos cómo consumir estos errores. Entonces después de este 10 metros, agregamos otro método llamado catch. Y nos sale sumador y console.log este error, este NC, nos sale ese error aquí. Entonces esta es la implementación de promesa en JavaScript. Ahora, déjame mostrarte cómo podemos convertir nuestro código anterior en promesas. Entonces tengo este código, cualquiera que sea el problema de devolución de llamada ****. Entonces comencemos con esta función get student. En esta función, devolvemos nueva función AND promesa con variables de resolución y rechazo dentro de esta función de error. Eliminar este código. Ahora, quitemos esta devolución de llamada. No lo necesitamos y añadimos el lugar de esta devolución de llamada. Agregamos resuelto. Ahora probemos esta promesa. Aquí. Llamamos a esta función de ejecución de croquis y paso id1. Ahora esto se hincha la función devolverá la promesa. Almacenamos esta promesa en variable llamada promesa de lo que consumimos esta promesa y agregamos aquí que método. Ahora obtenemos estos datos en parámetro student y simplemente console.log el alumno. Ahora comentemos este código. Y vinculo este archivo de script con archivo HTML. Guarde esto y actualice la página. ver, después de dos segundos, obtenemos datos. 6. Ejercicio y solución: Ahora bien, si me sigues, entonces tengo una tarea para ti. Quiero que conviertan estas dos funciones en promesas. Así que pausa este video aquí y pruébalo por ti mismo. Y después de eso, vigila la solución. En esta función. Regresamos y solo escribimos aquí Nuevo y seleccionamos esta nueva promesa. Mira, obtenemos este repetitivo al usar estos pequeños trucos, puedes impulsar tu productividad. Ahora, mueve este código dentro de esta función y elimina esta devolución de llamada y reemplaza esto con el resultado. Ahora aquí, también creamos una nueva promesa y movemos este código dentro de esta función de flecha. Ahora quita esta devolución y reemplaza esta con el resultado. Convertimos nuestra antigua función en promesa. Ahora, veamos cómo consumir estas promesas anidadas. Por lo que quitamos esta consola de aquí y llamamos a nuestra siguiente función. Acabamos de obtener asignaturas y pasar año estudiante dot id Ahora sabemos que esta función volverá a devolver promesa. Entonces tenemos que usar entonces método. Fuera de este 10 metros, agregamos otro que almacenado en sujetos. Ahora después de eso, llamamos a función GetMax y pasamos aquí nuestro primer tema. Ahora tenemos otra promesa aquí. Por lo que agregamos uno más que materia y almacenamos esta marca. Y simplemente consola dot log esta marca, guarda esto y actualiza la página. Ver que está funcionando igual que antes. Ahora podemos ver cuando usamos callbacks, nuestro código se parece a esta estructura anidada. Y después de aplicar promesas, el mismo objetivo parece simple y en línea. Ahora para buenas prácticas, siempre agregamos método de efectivo, encabezado y error console.log. Entonces, si obtenemos un error en cualquiera de estas promesas que se ejecutará la función single catch. Simple como eso. Ahora incluso podemos simplificar estas promesas usando la espera asíncrona. 7. Async Await - [La mejor manera de manejar las promesas]: Así que la espera asíncrona nos ayuda a escribir código asíncrono como núcleo síncrono. Es como una magia. Déjame mostrarte aquí. Yo llamo a esta función obtener estudiante con id1. Ahora, cuando llamamos a cualquier función que está devolviendo una promesa, entonces podemos esperar ese resultado y luego almacenar ese resultado en variable como lo hicimos en código síncrono. Así que vamos a almacenar esto en una variable llamada estudiante. Ahora de manera similar, llamamos a la siguiente función, que es obtener asignaturas y estudiante de Bhatia dot ID. Ahora esperemos eso y almacenemos en una variable llamada sujetos. Ahora después de eso, llamamos a nuestra última función, que es getMax y objeto fascia sesgo de la matriz de estudiantes. Ahora vamos también un peso para eso y almacenemos esto en Mark variable. Y luego console.log esta marca. Ahora se puede ver mediante el uso de este asíncrono y nuestro intérprete, podemos escribir código asíncrono, parece núcleo síncrono. Esto es fácil de entender y mantener en comparación con la devolución de llamada, así como las promesas. No necesitamos escribir este diez metros una y otra vez. Ahora podrías tener agresión. Eso es asíncrono. Así que cada vez que usamos el operador wait, tenemos que mover eso en función con el operador asíncrono. Déjame mostrarte. Así que simplemente agrego función aquí llamada datos de visualización y muevo este código dentro de él. Ahora al inicio de esta función, agrego asíncrono. Eso es todo. Recuerda, sin este acing, no puedes usar ocho en tu código. Se le dará error y editar, y vamos a llamar a esta función de datos de visualización. Ahora comento esta parte promete. Guarda esto y actualiza la página. ver, conseguimos el mismo desierto con asíncrono esperan. Nuestro código parece sincrónico, pero bajo el capó, motor JavaScript convierte la discordia en algo como esto, fresco o frío, funciona como núcleo asíncrono y se ve como código síncrono. Simple como eso. Ahora en promesas, manejamos error usando este método get. Pero, ¿cómo podemos manejar ese error en este asíncrono y esperar enfoque para el manejo de errores? Usamos try and catch block. Por lo que escribo aquí seco. Y dentro de este bloque try, movemos nuestro antiguo código. Y después de eso, añadimos bloque catch. Y este bloque catch obtiene objeto de error. Y simplemente consola dot log este error. Entonces en términos simples, si ocurrió algún error en este bloque try, entonces se ejecutará el blog de este tipo. Por lo que comento esta variable de marca, parte degustación, guarda esto y actualiza la página. Y a ver nos sale este error. Mark no está definido. Así que cuando usamos async wait como una buena práctica, siempre rompemos nuestro código e intentamos atrapar bloque. 8. Recap todos los conceptos: Recapitulemos lo que aprendimos. Por lo tanto, la función de devolución de llamada es el mejor método para manejar la puntuación asíncrona. Pero en rupias de función de devolución El tema llamado callback ****. Ahora después de eso, vemos promesas, que simplemente prometieron darte el resultado de una operación asíncrona o darte error. Entonces para crear promesa, usamos nueva promesa y dentro ella pasamos función con dos métodos. Resultado, rechazo, el único medio cumplido y rechazo significa rechazado. Pero con promesas, también conseguimos esto anidado y métodos. Entonces después de eso, vemos asíncrono esperar operadores. Esta espera asíncrona es trabajo como código asíncrono y se ve como núcleo síncrono. Entonces cuando llamamos a la función, agregamos un operador de peso al principio. Esto nos ayudará a escribir código de manera sincrónica. Y lo más importante, hay que poner este código en una función con un solo operador. Sin asíncrono, esperar no funcionará. Y es por eso que se conoce como asíncrono esperan. Y último, manejo de errores. Usamos bloque de prueba y calibre, jadeo por errores, y seco para todo el código. Entonces colocamos nuestro código antiguo en try block y manejamos el error en el bloque catch. Entonces felicidades, has completado esta clase, y espero que entiendas estos temas. Si te gustó esta clase, puedes compartir tus opiniones. Me ayudará a llegar a más estudiantes como tú. Entonces nos vemos en la siguiente clase. Adiós.