En este artículo, intentaremos comprender cómo podemos manejar el rechazo de Promise con un bloque try/catch mientras usamos await dentro de una función (o método) asíncrona (que tiene un prefijo como palabra clave asíncrona ).
Sintaxis: Primero visualicemos rápidamente la siguiente sintaxis ilustrada que podemos usar para crear una Promesa en JavaScript:
let new_promise = new Promise ((resolve, reject) => { // do something.... })
Veamos un ejemplo rápido que ilustrará cómo usar la sintaxis mencionada anteriormente para crear una promesa:
Ejemplo 1: en este ejemplo, simplemente crearemos una promesa que se resolverá con éxito y que contiene datos que se imprimirán como salida o resultado.
JavaScript
<script> let new_promise = new Promise((resolve, reject) => { resolve("GeeksforGeeks....!!"); }); console.log("Promise created: " + new_promise); new_promise.then((result) => console.log( "Data inside promise is : " + result)); </script>
Producción:
Promise created: [object Promise] Data inside promise is : GeeksforGeeks....!!
Ahora, después de analizar la sintaxis de la promesa a través de un ejemplo, echemos un vistazo al ejemplo mencionado a continuación que nos ayudará a comprender la declaración de nuestro problema de manera eficiente.
Ejemplo 2: En este ejemplo, crearemos una promesa dentro de una función (o un método) y luego haremos que esa promesa sea rechazada (bajo el método de estado de rechazo()) y en otra función (o método) llamaremos a ese método en el bloque de prueba y, además, detectaremos el error dentro del propio bloque catch().
JavaScript
<script> function rejected_promise() { return new Promise((resolve, reject) => { reject(new Error( "This promise is Rejected...")); }); } async function displayData() { try { await rejected_promise(); } catch (e) { console.log("Error Message: ", e.message); } } displayData(); </script>
Producción:
Error Message: This promise is Rejected...
Ejemplo 3: En este ejemplo, crearemos una promesa rechazada dentro de una función y mientras creamos la promesa usaremos una función de temporizador llamada setTimeout() y dentro de esa función setTimeout() pasaremos nuestro método de rechazo() y luego en otra función, crearemos un bloque try/catch y luego imprimiremos nuestro resultado.
JavaScript
<script> function rejected_promise() { return new Promise((resolve, reject) => { setTimeout(() => { reject(new Error( "This Promise is Rejected...")); }, 1000); }); } async function displayData() { try { await rejected_promise(); } catch (error) { console.log("Error Message: ", error.message); } } displayData(); </script>
Producción:
Error Message: This Promise is Rejected...
Publicación traducida automáticamente
Artículo escrito por amansingla y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA