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!

Javascript Espera exp: Questions

Javascript Espera JavaScript: Questions

Shop

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

$

Best laptop for Zoom

$499

Best laptop for Minecraft

$590

Latest questions

NUMPYNUMPY

psycopg2: insert multiple rows with one query

12 answers

NUMPYNUMPY

How to convert Nonetype to int or string?

12 answers

NUMPYNUMPY

How to specify multiple return types using type-hints

12 answers

NUMPYNUMPY

Javascript Error: IPython is not defined in JupyterLab

12 answers

News

Wiki

Python OpenCV | cv2.putText () method

numpy.arctan2 () in Python

Python | os.path.realpath () method

Python OpenCV | cv2.circle () method

Python OpenCV cv2.cvtColor () method

Python - Move item to the end of the list

time.perf_counter () function in Python

Check if one list is a subset of another in Python

Python os.path.join () method