La diferencia entre “fulfill” y “resolve” en promesas de Javascript
Cuando estamos trabajando con promesas en Javascript, hay dos términos que se confunden muy a menudo: fulfill y resolve.
De acuerdo con el diccionario:
- Fulfill: Completar o hacer realidad; alcanzar o realizar (algo deseado, prometido o predicho).
- Resolve: Asentar o encontrar una solución a (un problema, disputa o contienda).
Eso es todo lo que necesitamos para resolver toda la confusión alrededor de estos dos términos que tendemos a usar indistintamente.
Echemos un vistazo al siguiente snippet de código como un ejemplo:
De acuerdo a la definición de “Promise”, el método resolvepuede recibir, ya sea un valor o un objeto thenable (un objeto con un método llamado then, el cual es, comúnmente, otra Promesa) y ese parámetro será pasado a las llamadas subsecuentes al método then.
La clave está en la afirmación un valor o un thenable lo que significa que la siguiente llamada a then puede recibir ese valor específico o lo que sea que el objeto thenable regrese (incluido un estado de falla).
Vale la pena mencionar que el objeto “thenable” mencionado antes puede estar resolviendo otro objeto “thenable” y así sucesivamente. Aquí es donde “resolve” hace su magia. Está resolviendo una cadena de objetos “thenable” de tal forma que pueda obtener un valor al final.
Por otra parte, el término fulfillment hace referencia al estado donde obtener un valor después de la cadena de “resolves” que toma lugar antes de que se pueda llegar al callback en la función “then”.
De esta manera, “resolve” hace referencia al proceso que se tiene que llevar a cabo para llegar a un estado de “fulfillment” en un “then”.
Esperamos que este artículo te ayude a entender un poco más acerca de estos términos y, como siempre, si tienes algo que compartir o tienes alguna pregunta, por favor déjanos saber en los comentarios. Estaremos felices de ayudarte.
Regos Dev Studio es una compañía de desarrollo de productos que construye complementos para Jira y Confluence, combinado con desarrollos personalizados en varias tecnologías.
No olvides visitar nuestro sitio web, así como nuestro Atlassian marketplace listing. También nos puedes seguir en Twitter o LinkedIn y estar al tanto de nuestras actualizaciones!