Promesas ES6

Facebook
Twitter
LinkedIn

Las promesas son objetos que retornan un valor en el futuro. Debido a la manera asíncrona que funciona JavaScript, se pueden seguir ejecutando el código sin necesidad de esperar que otro proceso termine, entonces, ¿Cómo sabemos cuando el otro proceso ha terminado? Las promesas nos ayudan con esto.

Estados de una promesa

Una promesa tiene tres estados

  • Pendiente: La promesa ha sido creada y se esta ejecutando.
  • Completado: La promesa ha terminado su ejecución y no ocurrió ningún error.
  • Rechazado: Ocurrió algún error mientras se ejecutaba la promesa.

Sintaxis de una promesa en ES6

Para crear una promesa, le pasamos al constructor dos métodos, el que se ejecuta cuando todo termina de manera satisfactoria, conocido como resolve y reject en caso de que ocurra algún error.

Usamos la siguiente sintaxis

new Promise( (resolve, reject) => {
	// your code here
});

¿Cómo uso las promesas en JavaScript?

Un ejemplo clásico es el uso del setTimeout, el cual ejecuta una función en un tiempo establecido en el futuro. Otros casos son cuando se esta realizando alguna consulta a la base de datos o consumiendo algún API de terceros.

En el siguiente código, creamos una función que retorna una promesa. Dentro de esta función simulamos una consulta a la base de datos para encontrar un usuario en base a su email.

// Function to find an user by their email
const findUser = (email) => {
	return new Promise( (resolve, reject) => {
		let sql = `SELECT id FROM users WHERE email = "${email}"`;
		
		// myDB is just a database handler
		myDB
		.execute(sql)
		.then(user => resolve(user))
		.catch(err => reject(err));
	});
}
let email = '[email protected]';
findUser(email)
.then(user => {
	// no errors executing the query
	// others checks could happen here
	// example user !== null
	console.log('The promise has been resolved!');
})
.catch(err => {
	// All error handling's goes here
	console.log('The promise has been rejected');
});

Para saber más acerca de las promesas en ES6 recomiendo el siguiente enlace https://medium.com/dailyjs/asynchronous-adventures-in-javascript-promises-1e0da27a3b4

Te podría interesar
Tecnología

Team Chat

En el desarrollo de un proyecto existen distintas herramientas que nos permiten realizar una tarea específica, como integración continua (CI); repositorios distribuidos; administración de tareas, todas estas herramientas pueden coexistir en un solo proyecto lo cual ha llevado los clientes de Chat desarrollar integraciones con cada una de ellas ofreciendo así una manera sencilla de que todos los involucrados en el proyectos pueden estar al tanto de lo que está sucediendo.

Leer Más >>
Blockchain

¿Qué son las Aplicaciones Descentralizadas?

Las aplicaciones descentralizadas, también conocidas como dApps por su acrónimo de sus siglas en inglés Decentralized Apps, son aplicaciones informáticas que funcionan sobre un sistema de computación distribuido como lo es blockchain.

Leer Más >>
Tips

Drupal 8 Twig Tips

Twig es un motor de plantillas rápido, seguro y flexible para PHP. Drupal usa Twig para la presentación de páginas, nodos, bloques y otros tipos de contenido.

Leer Más >>

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *