Javascript Espera

| | | |

Introducido en ES6, Promises le permite escribir fácilmente código asíncrono sin tener que lidiar con varias funciones de devolución de llamada. Con las promesas, no hay necesidad de preocuparse por las devoluciones de llamada de varios niveles que son difíciles de escribir y mantener.

Hay otra característica en JavaScript que hace que sea aún más fácil escribir código asíncrono usando Promises: funciones asíncronas / atender. Estos le permiten escribir código que realiza apariencias sincrónicas pero crea rutinas asincrónicas.

En esta guía, vamos a discutir qué es la función asincrónica/de espera y cómo puede usarla en su código. Comencemos

Promesas: un repaso

Antes de comenzar a hablar sobre las funciones asincrónicas/de espera, debemos recapitular las promesas. Una promesa representa una operación asíncrona. Indica el código con el que se realizará una operación y, si la operación se realiza correctamente, se devolverá un valor. De lo contrario, se devolverá un error al resto del programa.

Una Promesa representa un valor que no se conoce en el momento en que se creó la promesa. Una promesa es solo eso: una promesa de que los valores futuros serán devueltos a su código. Dado que la promesa es un objeto, debe estar en mayúsculas.

Considere este escenario. Necesita recuperar un recurso de una API. Tomará uno o dos segundos procesar su solicitud. En lugar de que el usuario espere a que se procese la solicitud, puede mover su código a una Promesa para que el resto de su programa pueda seguir funcionando.

Esto significa que puede continuar renderizando parte de su interfaz de usuario del sitio web mientras extrae datos. Tan pronto como se devuelva un valor, Promise lo enviará a su programa principal.

Aquí hay un ejemplo de una promesa:.

Comentarios de nuestro código: ¡sus cookies han sido enviadas! ejecute el método sendCookies.then (), nuestra promesa se libera. Nuestro programa espera 1000 milisegundos, luego devuelve el valor "¡Sus cookies han sido enviadas!" " Nuestro programa principal

Cómo usar Async y Wait

En una función y async / wait, una instrucción de espera de ejecución de código se bloquea dentro de su función asincrónica hasta que se devuelve una promesa, razón por la cual los desarrolladores a menudo afirman que las funciones de espera asincrónicas/asincrónicas pero observan el desempeño de las tareas asincrónicas.

Considere el siguiente ejemplo:.

Nuestros comentarios sobre el código: ¡se han enviado sus cookies! Nuestra función sendCookies() tarda 1000 milisegundos en devolver el valor "Sus cookies han sido enviadas". En este caso, hemos declarado una función asíncrona para que nuestro código esté esperando que se resuelva o rechace una promesa.

La función "asíncrona" La palabra clave le dice a nuestro código que queremos realizar una función asíncrona operación en nuestra función. La palabra "expectativa" - clave indica que nuestro código espera a que sendCookies () prometa regresar antes de continuar con la ejecución de nuestro programa.

Las funciones asíncronas siempre devuelven una promesa.

Usando Async y With Espera de paso múltiple

Las funciones asincrónicas/de espera se usan con mayor frecuencia cuando hay varias promesas con las que necesita trabajar. Esto a veces se llama encadenar promesas. De hecho, su código esperará una promesa para volver a cada paso antes de pasar al siguiente:

Nuestro código devuelve:

¡Cada paso toma 1000 milisegundos completos!. Nuestra función sendCookies () no se ejecuta hasta la promesa de retorno de nuestra función ProcessOrder ().

Expresiones asíncronas

Hay tres formas en las que puede usar una función asíncrona / de espera.

El primero es el enfoque que mostramos en nuestros últimos ejemplos: mediante la declaración de funciones. En nuestros ejemplos, declaramos funciones que devuelven una promesa, por lo que usamos las palabras "async" y "expectation" - clave para realizar estas funciones

También puede declarar una función asíncrona usando funciones de dirección:

Este código devuelve: ¡Tus cookies han sido enviadas! Esto es lo mismo que nuestro primer ejemplo, pero en lugar de declarar una función principal () usamos una función de flecha

Del mismo modo que puede usar la sintaxis de la expresión de la función:.

Este código de retorno: Tus cookies han sido enviadas Como puedes ver, la salida es de nuevo l o ella misma. La única diferencia es cómo declaramos nuestra función.

De hecho, esta sintaxis es muy similar a nuestro último ejemplo. Simplemente usamos la palabra - tecla "función ()" en lugar de usar una función de auge.

No hay mejor manera de declarar una función asincrónica/de espera. Todo depende del programa que estés escribiendo y de la sintaxis que prefieras. Si bien se puede argumentar que las funciones de dirección son el método más conciso, otras formas de declarar una función asíncrona/de espera podrían ser mejores en otros casos.

Procesar solicitudes web usando Async/Wait

Uno de los usos más comunes de la función async / is await para procesar solicitudes web con una API basada en promesas, Fetch As (). Puede leer más sobre cómo usar fetch () en nuestra guía de búsqueda para principiantes de JavaScript

Tomemos este ejemplo:

Nuestro código devuelve:

Cuando ejecutamos nuestra función retrieveComments (), usamos la palabra "esperar" - función clave para esperar la ejecución de nuestra búsqueda (). Esto significa que el resto de nuestra programación no continúa hasta que nuestra solicitud web haya sido procesada. De hecho, la función devuelve una promesa.

Cuando la función fetch () devuelve una promesa fetch (), convertimos el valor que devolvió a JSON. Luego identificamos el objeto para obtener una lista de nombres de todos los comentarios e imprimirla en la consola

Cómo manejar un error

Oh, desearía que los errores no ocurrieran en el código. Pero lo hacen, y ahí los desarrolladores tenemos que planear algo. Función asíncrona, el manejo de errores se realiza mediante un intento síncrono ... captura. Considere este código:.

Nuestro código devuelve:

En nuestro ejemplo, usamos un .catch () si regresaba uno. En este caso, usamos require ("Error") para decirle a nuestro código que ha ocurrido un error.

Si se ejecuta esta declaración, nuestra declaración .catch() se activa y se imprime el error.

Del mismo modo, las funciones asincrónicas pueden detectar errores de sintaxis:.

Nuestro código devuelve: NetworkError al intentar recuperar el recurso. En este ejemplo, usamos una declaración try / catch para verificar si nuestro método de espera devolvió una promesa de éxito. Una vez más, nuestra API no es válida, lo que hace que nuestro programa rechace nuestra promesa. Cuando esto sucede, se ejecuta "catch" en nuestro bloque try / catch, que registra nuestro error en la consola.

Conclusión

Las funciones asincrónicas / de espera ayudan a escribir operaciones asincrónicas en el código. Cuando se declara una función asíncrona, puede usar la palabra clave "esperando" para esperar el resultado de las operaciones. La palabra clave espera debe usarse con una función que devuelve una promesa.

Ahora está listo para use funciones asincrónicas de JavaScript / ¡Espere como un experto!

Esperamos que este artículo le haya ayudado a resolver el problema. Además de Javascript Espera, consulta otros temas relacionados con exp.

¿Quiere sobresalir en Python? Consulte nuestra reseña de los mejores cursos en línea de Python 2022. Si está interesado en Data Science, consulte también cómo aprender programación en R.

Por cierto, este material también está disponible en otros idiomas:



Boris Nickolson

Moscow | 2022-11-30

Gracias por la explicación. Estuve atascado con el Javascript Espera durante algunas horas, finalmente lo conseguí 🤗. Solo espero que eso no vuelva a surgir

Davies Nickolson

Massachussetts | 2022-11-30

Me estaba preparando para mi entrevista de codificación, gracias por aclarar esto - Javascript Espera en Python no es el más simple. Volveré mañana con comentarios

Frank Wu

Tallinn | 2022-11-30

Sencillo y claro. Gracias por compartir. Javascript Espera y otros temas con sin siempre fue mi punto débil 😁.. Comprobado ayer, ¡funciona!

Shop

Learn programming in R: courses

$

Best Python online courses for 2022

$

Best laptop for Fortnite

$

Best laptop for Excel

$

Best laptop for Solidworks

$

Best laptop for Roblox

$

Best computer for crypto mining

$

Best laptop for Sims 4

$

Latest questions

NUMPYNUMPY

Common xlabel/ylabel for matplotlib subplots

12 answers

NUMPYNUMPY

How to specify multiple return types using type-hints

12 answers

NUMPYNUMPY

Why do I get "Pickle - EOFError: Ran out of input" reading an empty file?

12 answers

NUMPYNUMPY

Flake8: Ignore specific warning for entire file

12 answers

NUMPYNUMPY

glob exclude pattern

12 answers

NUMPYNUMPY

How to avoid HTTP error 429 (Too Many Requests) python

12 answers

NUMPYNUMPY

Python CSV error: line contains NULL byte

12 answers

NUMPYNUMPY

csv.Error: iterator should return strings, not bytes

12 answers

News


Wiki

Python | How to copy data from one Excel sheet to another

Common xlabel/ylabel for matplotlib subplots

Check if one list is a subset of another in Python

sin

How to specify multiple return types using type-hints

exp

Printing words vertically in Python

exp

Python Extract words from a given string

Cyclic redundancy check in Python

Finding mean, median, mode in Python without libraries

cos

Python add suffix / add prefix to strings in a list

Why do I get "Pickle - EOFError: Ran out of input" reading an empty file?

Python - Move item to the end of the list

Python - Print list vertically