Así funcionan las PROMESAS y ASYNC/AWAIT en JAVASCRIPT || Entiende la Asincronía

Carlos Azaustre - Aprende JavaScript
17 Aug 202212:55

Summary

TLDREste video tutorial, impartido por Carlos Azaústre, aborda los conceptos fundamentales de sincronía en JavaScript, centrándose en las promesas y el uso de async/await. Explicado con un ejemplo práctico, Carlos profundiza en cómo manejar el código asíncrono y lidiar con la espera inherente a las tareas como la lectura de archivos o llamadas a APIs. Además, ofrece consejos para freelaancers interesados en trabajar con startups a través de la plataforma Lemon. El contenido es relevante y fácil de entender, con un toque de humor y una recomendación de suscribirse para contenido futuro relacionado.

Takeaways

  • 👋 Carlos Azaústre es el presentador del canal de YouTube donde se explican conceptos de JavaScript y programación web.
  • 🔔 Suscríbete y activa la campanita para no perderte futuros videos sobre JavaScript y desarrollo web.
  • 💻 Lemon.punto es una plataforma para trabajar como freelance con startups a nivel mundial, principalmente en inglés.
  • 📚 El video utiliza Room JS, una aplicación para escribir y ver el resultado inmediato de código JavaScript.
  • 📖 La sincronía en JavaScript se refiere a la espera antes de que los datos solicitados sean devueltos.
  • 🕒 `setTimeout` es una función de JavaScript que simula un retardo en la ejecución del código.
  • 🔄 Las Promesas en JavaScript permiten manejar código asíncrono, lidiando con estados de resolución o rechazo.
  • 🛠 `async/await` es una sintaxis sugar que simplifica la forma de manejar promesas, permitiendo un código más legible y secuencial.
  • 📈 La versión 16 de JavaScript permite el uso de `async/await` fuera de funciones o bloques asíncronos (top level await).
  • 🔗 El script proporciona un ejemplo de cómo se puede simular una solicitud asíncrona y cómo se manejan las respuestas y errores utilizando promesas y async/await.

Q & A

  • ¿Qué es la sincronía en JavaScript y cómo se relaciona con las promesas?

    -La sincronía en JavaScript se refiere a la forma en que las funciones se ejecutan de manera secuencial, esperando a que una acción termine antes de comenzar la siguiente. Las promesas son un objeto de JavaScript que permite manejar código asíncrono, ofreciendo una forma de programación orientada a promesas que incluye estados de pending (pendiente), fulfilled (cumplido) y rejected (rechazado). Esto permite a los programadores manejar la asincronía de manera más eficiente y legible.

  • ¿Qué es la función setTimeout y cómo se utiliza para simular la asincronía?

    -La función setTimeout de JavaScript permite introducir un retardo en la ejecución de un código. Se utiliza para simular la asincronía al pausar la ejecución de un script por un período de tiempo específico, en milisegundos, antes de ejecutar una función de callback. En el ejemplo del script, setTimeout se usa para retrazar la visualización de datos, imitando así el tiempo de espera que se experimenta al obtener información de una API o leyendo un archivo.

  • ¿Qué es la plataforma Lemon y cómo funciona para los freelancers?

    -Lemon es una plataforma que permite a los freelancers trabajar con startups de todo el mundo de manera remota. El proceso implica registrarse en la plataforma, realizar un test de 15 minutos en inglés, participar en una entrevista por videollamada y, finalmente, realizar una prueba técnica para demostrar las habilidades. Esto ayuda a los freelancers a evitar problemas como buscar clientes, negociar precios y estar pendiente de pagos, centrando su atención en el trabajo de desarrollo de código.

  • ¿Qué es la programación asíncrona y cómo se diferencia de la síncrona?

    -La programación asíncrona se refiere a la ejecución de tareas que no bloquean el flujo principal del programa mientras esperan la finalización de otras tareas. Esto permite que el programa continue ejecutándose mientras se llevan a cabo operaciones lentas como la lectura de archivos o la comunicación con una base de datos. En contraste, la programación síncrona implica que el programa se detiene para esperar la finalización de una tarea antes de continuar con el siguiente, lo que puede resultar en una mala experiencia de usuario debido a posibles retrasos.

  • ¿Qué son los objetos Promise y cómo funcionan?

    -Los objetos Promise en JavaScript son una forma de manejar código asíncrono. Un objeto Promise representa un valor que aún no se ha calculado, pero se espera que lo hará en el futuro. Los Promise tienen tres estados posibles: pending (pendiente), fulfilled (cumplido) y rejected (rechazado). Cuando un Promise está en estado pending, se puede adjuntar funciones de callback (usando la propiedad then para resolverse y catch para rechazarse) que se ejecutarán una vez que el Promise esté fulfilled o rejected, permitiendo así una gestión más eficiente de la asincronía.

  • ¿Cómo se puede manejar la asincronía en JavaScript utilizando async/await?

    -Async/await es una característica de sintaxis en JavaScript que permite escribir código asíncrono de una manera que parece síncrona. La palabra reservada async se coloca delante de una función para indicar que es asíncrona, y la palabra reservada await se utiliza dentro de la función para pausar la ejecución de la función hasta que una Promise sea fulfilled o rejected. De esta manera, async/await facilitan la lectura y el mantenimiento del código asíncrono, haciéndolo más legible y fácil de entender.

  • ¿Qué es la top-level await y cómo se utiliza en JavaScript?

    -La top-level await es una característica de JavaScript que permite el uso de la palabra reservada await fuera de una función asíncrona, directamente en el nivel superior del script. Esto significa que puedes esperar la resolución de una Promise sin tener que encerrar el código en una función específica. La top-level await es útil para simplificar el código y hacer que la asincronía sea más fácil de manejar, especialmente en scripts que se ejecutan en el entorno de nodo (Node.js) o en el navegador moderno que soporta esta característica.

  • ¿Qué es RoomJS y cómo se utiliza para aprender sobre JavaScript?

    -RoomJS es una aplicación que permite escribir código JavaScript y ver su resultado inmediatamente en el lado derecho de la pantalla. No es un editor de código, sino más bien una herramienta para hacer explicaciones y probar diferentes funciones para ver su resultado. Es útil para tutoriales y para aprender sobre JavaScript y la programación web en general, ya que permite a los usuarios ver directamente los resultados de sus experimentos de codificación.

  • ¿Cómo se implementa un test de 15 minutos en inglés en el proceso de Lemon?

    -El test de 15 minutos en inglés que se menciona en el proceso de Lemon es una evaluación que se realiza a los freelancers para asegurarse de que tienen un nivel de inglés suficiente para realizar trabajo de calidad en un entorno internacional. Aunque el script no proporciona detalles específicos sobre el contenido del test, se puede inferir que evalúa habilidades de comprensión, comunicación y posiblemente técnicas de programación en inglés.

  • ¿Qué es la diferencia entre el uso de .then y .catch con promesas?

    -El método .then asociado con un objeto Promise se utiliza para manejar el caso en el cual la Promise se resuelve, es decir, cuando se cumple y se tiene un resultado. Por otro lado, el método .catch se utiliza para manejar el caso en el cual la Promise se rechaza, es decir, cuando ocurre un error o una situación anómala. .then permite el procesamiento de los datos devueltos después de una operación asíncrona exitosa, mientras que .catch permite la captura y el manejo de errores para evitar que el programa se interrumpa o se comporte de manera inesperada.

  • ¿Cómo se maneja un error en la función asíncrona con Promise y async/await?

    -Para manejar errores en una función asíncrona utilizando Promise y async/await, se utiliza la palabra reservada try dentro del código que se desea ejecutar y se espera que pueda generar un error. Si un error ocurre, se puede capturar y procesar dentro de un bloque catch asociado a la función async. Esto permite un manejo más estructurado y legible de errores en código asíncrono, permitiendo una mejor capacidad de respuesta ante situaciones anómalas o inesperadas.

  • ¿Cuál es la ventaja de utilizar async/await sobre la programación con promesas tradicional?

    -La ventaja principal de utilizar async/await sobre la programación con promesas tradicional es que async/await proporciona una sintaxis más limpia y legible, lo que hace que el código asíncrono sea más fácil de leer y entender. En lugar de cadenas de .then y .catch, async/await permite escribir código que parece secuencial y síncrono, simplificando la lógica de control de flujo y facilitando la comprensión de cómo se ejecutan las tareas asíncronas.

Outlines

00:00

📚 Introducción a la sincronía y promesas en JavaScript

Este párrafo comienza con una introducción al concepto de sincronía en JavaScript, abordando temas como las promesas, asíncrono weight y flujo de programación. El video pretende aclarar estos conceptos a través de un ejemplo de código. El presentador, Carlos Azaústre, invita a la audiencia a suscribirse al canal de YouTube para obtener más tutoriales y recursos sobre programación web. Además, promociona la plataforma Lemon, que permite trabajar como freelance con startups de todo el mundo,简化了自由职业者的工作流程.

05:01

👨‍💻 Explicación de las promesas y manejo de errores en JavaScript

En el segundo párrafo, se profundiza en el uso de promesas para manejar código asíncrono en JavaScript. Se describe la modificación de una función para que utilice una promesa y maneje tanto la resolución como el rechazo de la promesa. Se explica el uso de 'resolve' y 'reject' para indicar éxito o error en la obtención de datos. Además, se discuten las mejores prácticas para manejar errores y se presenta un ejemplo práctico de cómo implementar estas concepts utilizando 'try' y 'catch'.

10:02

🌐 Uso de 'async/await' y top-level await en JavaScript

El tercer párrafo se centra en el uso de 'async/await' para escribir código asíncrono de una manera más legible y secuencial. Se explica cómo 'async/await' simplifica el manejo de promesas en JavaScript. También se menciona el concepto de 'top-level await', que permite el uso de 'await' fuera de funciones asíncronas, gracias a la versión 16 de JavaScript. Se ejemplifica el uso de 'top-level await' en un entorno de terminal, mostrando cómo se puede acceder a datos y manejar promesas de manera directa.

Mindmap

Keywords

💡Sincronía

La sincronía es un concepto fundamental en la programación que se refiere a la ejecución de código de manera secuencial y en un orden específico. En el video, se aborda el tema de la sincronía en JavaScript a través de ejemplos de código y se explica cómo manejar las operaciones que tienen un delay o retardo, como la lectura de datos de un archivo o una API. La sincronía es crucial para garantizar que el código se ejecute en el orden correcto y se manejen correctamente los datos.

💡Promesas

Las promesas en JavaScript son objetos que representan el resultado de una operación asíncrona que aún no se ha completado. Permiten manejar el código asíncrono de una manera más organizada y eficiente. En el video, se utiliza la función 'setTimeout' para simular una operación asíncrona y se explica cómo las promesas pueden ser resueltas o rechazadas, lo que permite un mejor control sobre el flujo de la aplicación.

💡Async/Await

Async/Await es una sintaxis azucarada (sugar syntax) en JavaScript que simplifica la forma en que se trabajan las promesas. Permite escribir código asíncrono de una manera que parece síncrona, facilitando la lectura y el mantenimiento del código. En el video, se muestra cómo utilizar Async/Await para manejar las promesas de manera más legible y cómo se puede utilizar el top-level await en versiones más recientes de JavaScript.

💡Top-Level Await

El Top-Level Await es una característica de JavaScript que permite el uso de 'await' en el nivel superior, fuera de cualquier función asíncrona. Antes de su introducción, era necesario encapsular el código en una función async para poder utilizar 'await'. Con Top-Level Await, se puede escribir código asíncrono directamente en el cuerpo de un script, lo que simplifica aún más el manejo de operaciones asíncronas.

💡Lemon

Lemon es una plataforma mencionada en el video que permite a los freelancers trabajar con startups de todo el mundo de manera remota. La plataforma se describe como sencilla, ya que después del registro, se realiza un test de 15 minutos en inglés y se procede a una entrevista por videollamada. Finalmente, se realiza una prueba técnica para verificar las habilidades del freelancer. Lemon brinda la oportunidad de centrarse en el trabajo en lugar de en aspectos como la búsqueda de clientes o negociación de precios.

💡Freelance

Freelance se refiere a un trabajador que proporciona servicios profesionales de manera independiente y a su cuenta. En el contexto del video, se habla de freelancers que buscan trabajar con startups a través de la plataforma Lemon. Los freelancers tienen la libertad de elegir sus proyectos y horarios, y pueden trabajar desde cualquier lugar con una conexión a Internet.

💡Recruiting

El proceso de recruiting se refiere a la selección y contratación de personal para una empresa o organización. En el video, se menciona que después de registrarse en la plataforma Lemon, el freelancer tendrá una entrevista por videollamada, que es típica en el proceso de recruiting. Esta entrevista es una oportunidad para que el freelancer demuestre sus habilidades y se familiarice con el equipo de la empresa.

💡Programación Web

La programación web es el proceso de crear aplicaciones y contenido para Internet utilizando diferentes lenguajes de programación, como JavaScript. El video ofrece tutoriales y recursos para aprender sobre JavaScript y otros aspectos de la programación web en general, lo que es útil para quienes buscan mejorar sus habilidades en este campo.

💡YouTube

YouTube es una plataforma de video en línea donde los usuarios pueden compartir, ver y comentar videos. En el video, el presentador menciona su canal de YouTube como un lugar para encontrar más tutoriales y recursos sobre JavaScript y la programación web. Los canales de YouTube son una fuente valiosa de información y aprendizaje para personas interesadas en diversas temáticas.

💡Estructura de Datos

La estructura de datos es la forma en que se organizan y almacenan los datos en un programa informático. En el video, se menciona un ejemplo donde se tiene un array con varios objetos que representan a tres libros. La estructura de datos es fundamental para el acceso y manipulación eficientes de la información en cualquier aplicación.

💡Callback

Un callback es una función que se pasa como argumento a otra función y se ejecuta cuando se cumple cierta condición. En JavaScript, los callbacks son comúnmente utilizados en operaciones asíncronas para manejar los resultados o errores una vez que se haya completado la tarea. En el video, se utiliza un callback en la función 'setTimeout' para simular una tarea con delay.

Highlights

Explicación del concepto de sincronía en JavaScript y cómo funciona la programación asíncrona.

Introducción a Promises y su papel en el manejo del código asíncrono.

Cómo se implementa un retardo en la ejecución de funciones usando setTimeout.

Creación de una función asíncrona que utiliza un callback para simular una tarea con delay.

Ejemplo práctico de cómo se comporta la sincronía al leer datos de un array en JavaScript.

Descripción de cómo se manejan los errores en una función asíncrona utilizando reject.

Introducción a async/await como una forma de escribir código asíncrono de manera más legible.

Explicación de cómo se puede utilizar async/await para simplificar el manejo de promesas.

Muestra de cómo se puede usar top-level await en JavaScript para escribir async code en el nivel superior.

Recomendación de la plataforma Lemon para que los freelances trabajen con startups a nivel mundial.

Procedimiento para que los desarrolladores se registren en Lemon y realicen una prueba técnica.

Breve descripción de Room JS como herramienta para escribir y ver el resultado de código JavaScript.

Comparación entre la sincronía y asíncronia en JavaScript con ejemplos de lectura y escritura de datos.

Explicación detallada de cómo se manejan los estados de una promesa: pending, resolved y rejected.

Uso de cláusulas try/catch para manejar errores en funciones asíncronas.

Importancia de la versión de JavaScript para el uso de async/await en el nivel superior (top-level await).

Transcripts

play00:00

tienes dudas con la sincronía en

play00:01

javascript no entiendes muy bien el

play00:03

concepto de promesas asinca weight y

play00:05

cómo funciona el flujo de la

play00:06

programación pues estás en el vídeo

play00:08

indicado vamos a ver a través de un

play00:10

ejemplo de código cómo funciona este

play00:12

concepto mi nombre es carlos azaústre y

play00:14

en este canal de youtube vas a encontrar

play00:16

muchos más tutoriales y recursos sobre

play00:18

javascript y programación web en general

play00:20

te recomiendo que te suscribas y le des

play00:22

a la campanita para no perderte ninguno

play00:24

de los próximos vídeos que publique si

play00:26

eres freelance o quieres serlo y además

play00:27

quieres trabajar con startups te

play00:29

recomiendo que le eches un vistazo al

play00:31

lemon punto esta plataforma te permite

play00:34

trabajar con startup de todo el mundo

play00:35

como freelance y por supuesto en remoto

play00:37

el proceso es muy sencillo te registras

play00:39

ellos se ponen en contacto contigo y

play00:42

tendrás que hacer un pequeño test de

play00:43

unos 15 minutos en inglés ya que la

play00:45

mayoría de las ofertas son para países

play00:47

de habla inglesa después tendrás una

play00:49

entrevista por videollamada como las

play00:51

típicas que sueles tener con el equipo

play00:52

de recruiting de las empresas y por

play00:54

último una prueba técnica para comprobar

play00:56

tus habilidades con eso ya estará listo

play00:58

para participar en un proyecto de todas

play01:00

las startups que hay en lemont la idea

play01:02

de esto es que tú como freelance te

play01:04

puedas olvidar de todo el tema buscar

play01:06

clientes negociar tu precio ahora estar

play01:09

pendiente de los pagos etcétera en

play01:10

resumen te olvidas de toda la parte de

play01:12

ventas y te centras en tu trabajo que es

play01:14

desarrollar código te dejo en la

play01:16

descripción del vídeo y también en el

play01:17

comentario fijado un link para que

play01:19

puedas hacerte de tu perfil y ahora

play01:21

vamos con el código para explicarlo me

play01:23

voy a basar en un vídeo que ya hice en

play01:24

este canal hace un par de años pero de

play01:26

una manera más actualizada imagina que

play01:28

tienes la siguiente estructura de datos

play01:30

por ejemplo un array con varios objetos

play01:32

en este caso pues tres objetos que

play01:34

representan tres libros si nosotros

play01:36

creamos una función llamada por ejemplo

play01:38

que data

play01:41

que devuelva los datos y nosotros

play01:44

llamamos a esta función pues nos

play01:46

aparecen aquí inmediatamente como puedes

play01:48

ver en el lado derecho seguramente te lo

play01:50

estés preguntando la aplicación que

play01:52

estoy usando se llama room js es una

play01:54

aplicación que te permite escribir

play01:56

código javascript y ver su resultado

play01:58

inmediatamente en el lado derecho no es

play02:01

un editor de código sino simplemente

play02:02

pues sirve para hacer explicaciones de

play02:04

este tipo o probar diferentes funciones

play02:07

para ver su resultado tienes un short en

play02:09

el canal donde te lo cuento un poco más

play02:11

vale aquí recibimos los datos

play02:13

directamente porque esto no es así crono

play02:15

esto es sin crono es decir los datos

play02:17

están ahí los llamamos y nos los pinta

play02:19

pero imaginemos que estos datos pues no

play02:21

los tenemos en local sino que están en

play02:24

un fichero que tenemos que leer o

play02:26

estamos haciendo una petición a un api a

play02:28

una url que nos devuelve esos datos vale

play02:31

pues ahí es donde entra el concepto de

play02:33

la sincronía esa acción que realizamos

play02:34

es decir una escritura o una lectura en

play02:37

un fichero o una llamada a la base de

play02:39

datos oa una url externa por medio de un

play02:42

ápice de frascuelo o lo que sea tiene un

play02:45

pequeño delay pueden ser

play02:47

pero aún así ya sí que es un retardo no

play02:50

llega inmediatamente cuando se ejecuta o

play02:53

se llama a la función que pide es esos

play02:55

datos para simular ese comportamiento

play02:56

aquí en el ejemplo vamos a utilizar una

play02:58

función de javascript que se llama set

play03:00

time out con save time out lo que

play03:02

conseguimos es meter un pequeño retardo

play03:04

a lo que queremos que devuelva te lo

play03:06

explico con código vamos a modificar la

play03:08

función que está utilizando ese time out

play03:11

escribimos el time out y esta función

play03:15

recibe dos parámetros el primero es una

play03:17

función de callback que vamos a poner en

play03:20

formato arroz función y separado por una

play03:22

coma un número que representa el tiempo

play03:25

en milisegundos que queremos que se

play03:27

retarde esa función entonces vamos a

play03:29

poner por ejemplo 2000 que serían dos

play03:31

segundos 2000 milisegundos 2 segundos y

play03:34

dentro del call back vamos a poner un

play03:37

cónsul of the day time

play03:40

ok entonces ahora si llamamos a great

play03:43

day está

play03:45

y esperamos esos dos segundos nos

play03:47

aparecen los datos vale como veis ha

play03:49

tardado dos segundos antes lo escribía

play03:51

directamente y ahora pues ha talado esos

play03:53

dos segundos aquí porque lo esté

play03:55

imprimiendo directamente pero imagínate

play03:57

que este time out en lugar del con sólo

play03:59

tuviera un return data ok y yo aquí

play04:05

metiese s get day está dentro de un

play04:09

cónsul lo que vale para imprimir esos

play04:11

datos si ves nos devuelve un define

play04:14

porque porque está ejecutando esto

play04:16

directamente que el data y no va a

play04:18

recibir respuesta hasta dentro de dos

play04:20

segundos eso es la sincronía como

play04:22

arreglamos esto como hacemos que cuando

play04:25

queramos imprimir esos datos aparezcan y

play04:27

no nos aparezca un define o no nos

play04:29

aparezca nada si te das cuenta y

play04:30

trabajas con frameworks como read por

play04:33

ejemplo o view cuando haces una petición

play04:35

asíncrona y te llegan los datos no se

play04:38

pintan o no aparecen inmediatamente en

play04:41

su interfaz sino que tienes que hacer

play04:43

algo para que para que exista esa carga

play04:47

es el audi y luego ya aparezcan los

play04:49

datos pues esto es básicamente el

play04:51

principio de ese concepto esto se

play04:53

resuelve con las promesas el objeto

play04:55

promise o promesas es un objeto de

play04:58

javascript que permite manejar el código

play05:00

asíncrono entonces vamos de nuevo a

play05:03

modificar la función que data utilizando

play05:05

una promesa para que cuando el código

play05:07

esté listo lo pueda resolver

play05:10

de algún error pues lo pueda rechazar y

play05:13

así luego nosotros podemos llamar a esa

play05:15

función get data de otra manera y

play05:17

podemos manejar esos dos estados el de

play05:20

resuelto y el de rechazado comentó este

play05:23

código de aquí y esta función ahora lo

play05:25

que va a devolver es un nuevo objeto

play05:27

promise

play05:29

y este objeto promise devuelve una

play05:31

función de callback nuevamente

play05:35

y la función de callback recibe dos

play05:37

parámetros que son el objeto ry sol y el

play05:40

objeto billete y sol lo vamos a usar

play05:42

para cuando queramos resolver la promesa

play05:44

cuando ya tengamos los datos

play05:46

correctamente y los queramos devolver

play05:48

utilizaremos resol si ocurre algún error

play05:50

o nosotros de alguna manera queremos

play05:52

hacer un rechazo a esa llamada por

play05:55

alguna circunstancia que ahora veremos

play05:57

por un ejemplo pues utilizaremos rayet

play05:59

entonces pues vamos primero con el rayet

play06:02

ya si utilizamos una buena práctica que

play06:04

es utilizar cláusulas de cierre es decir

play06:07

intentar escribir al inicio de tus

play06:10

funciones el caso peor para devolver

play06:13

error o salir de la función lo primero

play06:15

es decir primero se comprueba si hay

play06:17

errores y después ya se realiza el

play06:18

código si no hubiera errores entonces

play06:20

vamos a hacer una comprobación aquí de

play06:22

sida está producto online es igual es

play06:27

igual a cero pues vamos a hacer un reset

play06:29

de hecho vamos a utilizar llaves para

play06:31

que se vea un poco mejor un riel y esto

play06:34

que devuelva a un nuevo error y el

play06:36

mensaje puede ser

play06:38

y los datos están vacíos si se sale de

play06:42

aquí es que no hay errores entonces

play06:44

ahora ponemos el código correcto cuál es

play06:46

el código correcto para simular el

play06:48

retardo vamos a utilizar el set time out

play06:50

que teníamos antes entonces lo copió de

play06:52

aquí y lo pegó y le quitó los

play06:53

comentarios

play06:55

y ahora en lugar de return data lo que

play06:58

vamos a hacer es re solve that ok

play07:01

esta sería nuestra función asíncrona

play07:04

nuestra promesa que si tiene errores la

play07:07

rechaza y si todo es correcto la

play07:09

resuelve como llamamos a esta hora bueno

play07:11

pues escribimos la función get data pero

play07:14

ahora esta función se le pueden

play07:16

concatenar dos funciones una seria punto

play07:19

de y otra sería punto catch en punto de

play07:23

lo que vamos a tener es cuando se

play07:24

resuelva la promesa es decir los datos

play07:27

correctos y en punto catch si tenemos

play07:29

algún error entonces end en esto de

play07:31

hecho se suele escribir de esta manera

play07:33

para que sea más legible entonces en d

play07:36

vamos a recibir el objeto de datos este

play07:38

de aquí data aquí lo puede llamar como

play07:40

quieras si quieres podemos llamarlos

play07:41

response para que veas que no es

play07:44

exactamente el mismo nombre que se pone

play07:45

y con response lo que vamos a hacer es

play07:47

que cuando ya tengamos eso pues que lo

play07:49

imprima por

play07:51

por consola ok y el catch lo que recibe

play07:54

es un objeto de error

play07:57

y de igual manera pues aquí se trataría

play07:59

entonces hacemos con sol blog

play08:03

y mesa o si no porque si no nos va a

play08:05

mostrar el objeto error directamente

play08:08

para que tengo un error porque tenía ahí

play08:10

un punto y coma y si ves no sé si te has

play08:13

dado cuenta tenemos aquí abajo promise

play08:15

pending y después aparece ya el objeto

play08:17

data resuelto ok nosotros si ponemos get

play08:21

data únicamente no aparece nada aparece

play08:24

el objeto promise pendín es decir está

play08:26

en pendiente y como no hay nada que lo

play08:28

pueda ejecutar cuando se resuelva pues

play08:30

se queda ahí de hecho si haces un con

play08:32

solo lo que data pasa exactamente lo

play08:35

mismo necesitas resolverlo de alguna

play08:37

manera o al menos tener algo que haga

play08:40

que cuando eso se resuelva ejecutarlo

play08:42

entonces por eso tenemos emden y el

play08:44

catch está el pending y después ya

play08:47

aparece la respuesta qué pasa si hay un

play08:48

error bueno aquí hemos puesto que el

play08:50

error sería si los datos fueran 0

play08:53

entonces vamos a comentar el objeto data

play08:55

y vamos a hacer que data sea una raíz

play08:59

vacía vale entonces cómo ves aparece

play09:02

promise pendín y directamente data y

play09:04

sentís bueno aparece directamente porque

play09:06

no le hemos hecho el simulacro del pero

play09:09

bueno creo que se entiende el concepto

play09:11

esto es el objeto promise habrás visto

play09:13

que hay otro concepto que es el de think

play09:15

and white asinca weight no es más que un

play09:18

azúcar sintáctico sugar sintax en inglés

play09:21

que es una forma de escribir el mismo

play09:23

código pero de es una forma de hacer

play09:26

exactamente lo mismo que hemos visto

play09:28

aquí pero escrito de otra manera que

play09:30

resulta más legible parece que estás

play09:32

escribiendo código secuencial pero

play09:34

realmente es código asíncrono vale con

play09:36

asinca weight esto se escribiría de la

play09:38

siguiente manera nosotros podríamos

play09:40

tener aquí una variable llamada libros

play09:43

por ejemplo y llamar a greg data pero

play09:46

como esta función es asíncrona

play09:48

deberíamos de escribir un a white

play09:51

delante aquí aparece un error pero esto

play09:53

es problema de run js vale anteriormente

play09:57

a weight es una palabra reservada que

play09:59

sólo se puede utilizar dentro de una

play10:02

función o de un bloque que tenga la

play10:05

palabra reservada a sinc es decir esto

play10:07

tendríamos que meterlo dentro de una

play10:09

función

play10:10

así función como quieras llamar page de

play10:15

ching de ita

play10:18

meteríamos ahí eso y luego pues

play10:20

podríamos hacer lo que fuera con los

play10:22

libros vale por ejemplo el famoso con

play10:25

solo y nosotros después ya llamar a zinc

play10:30

para no confundir vamos a comentar la

play10:32

función anterior y puedes ver aquí que

play10:34

pone promise rejected error data y sentí

play10:37

porque teníamos los datos

play10:39

vacíos entonces vamos a volver a des

play10:42

comentar esto vamos a volver a tener

play10:43

todos los datos y ahí vemos promi

play10:46

spending y aparece como ves es más

play10:48

secuencial porque parece que tú aquí

play10:49

dices vale dame que data dame los libros

play10:53

los cuadros en esta variable y lo

play10:54

imprimo pero ésta esté a weight esta

play10:56

weight lo que hace es sustituir a este

play10:58

punto de y punto cut que teníamos antes

play11:01

el error que hemos visto es que no

play11:03

podemos poner a white cake data

play11:05

directamente así pero esto como digo es

play11:09

problema de room js en las últimas

play11:11

versiones de leyes ya se puede utilizar

play11:14

lo que se llama el top level away es

play11:17

decir puedes utilizar a weight fuera de

play11:20

una función de tipo asíncrono lo puedes

play11:21

usar así tal cual entonces para eso

play11:23

vamos a abrir la terminal vale aquí

play11:26

tengo un terminal y podemos ver que

play11:28

tengo la versión 16 14

play11:30

entramos al intérprete de comandos de no

play11:33

de escribiendo un out y entonces aquí

play11:35

podemos escribir código javascript si yo

play11:37

aquí pongo con solo

play11:41

hola mundo

play11:43

esto funciona igual que la consola de

play11:45

desarrollo del navegador o el programa

play11:48

este que estoy utilizando que se llama

play11:49

run js vale entonces aquí voy a copiar

play11:52

los datos para tenerlos pues ahí en

play11:55

memoria

play11:56

si yo escribo data pues ahí los tenemos

play11:59

y voy a escribir la función promesa que

play12:02

teníamos aquí ok pues ahora como estoy

play12:05

en la versión 16 y acepta el top de

play12:08

belagua y yo puedo escribir aquí sin

play12:10

problema con c's boot

play12:14

a white jet data

play12:17

y si yo ahora escribo con su blog

play12:22

books pues ahí lo tengo y como ves no he

play12:25

tenido que crear ninguna función

play12:27

asíncrona en meter todo esto dentro de

play12:29

esa función y luego llamar a la función

play12:31

sino que directamente puede utilizar a

play12:33

weight a nivel alto a top level y así es

play12:36

como funciona la sincronía en javascript

play12:38

con el objeto promise y con asinca

play12:40

weight espero que te haya sido útil y te

play12:42

haya servido para reforzar conocimientos

play12:43

si es así no olvides darle like a este

play12:46

vídeo suscribirte y si tienes más dudas

play12:48

sobre la sincronía en javascript

play12:50

déjamelo en los comentarios nos vemos en

play12:52

un próximo vídeo chao

Rate This

5.0 / 5 (0 votes)

Ähnliche Tags
Sincronía en JSPromesas JavaScriptAsync/AwaitProgramación WebFreelanceWeb DevelopmentAprende JSYouTube TutorialLemon.la PlataformaStartups
Benötigen Sie eine Zusammenfassung auf Englisch?