Horacio Demaría
PreguntaHola, agradecería se me explicara el tema del parámetro resolve, reject.
Y por consiguiente el de response y err.
Es decir, resolve y reject, son parámetros que incluso podrían tener nombres cualquiera.
Mi duda concreta es como frente a un resolve(“hey”) o reject(“whoops”) estos se pueden “disparar”, es decir, la consola los puede leer.
Porqué no poner sólo el string “Hey” sin el resolve por ejemplo
Por qué y cómo es posible que el parámetro oficie como una especia de “console.log” o “documen.write” por describirlo de alguna manera.
Si me pueden aclarar eso, estaré muy agradecio.
Y una vez hecho, agradezco también me expliquen como el parámetro response sabe que lo que está devolviendo es al parámetro resolve.
Desde ya, muchísimas gracias.

Luis Gerardo Colmenares
Horacio, creo que entiendo tu duda, me basaré en el ejemplo de Jorge.
El nombre del argumento de la función invocada por la promesa ("resolve") es totalmente independiente del argumento de la función que invoca el método ".then" (respuesta).
Ahora, éstos dos se relacionan por lo siguiente: el "resolve(suma)" es la forma en que la promesa devuelve un resultado en caso de resolverse exitosamente (en este caso devuelve el array "list" con el método .map() aplicado). Y el "reject(error)" es la forma en que la promesa devuelve un resultado en caso de NO resolverse exitosamente (en este caso devuelve "Error de ejecución . . . :( ").
Para poder acceder y manipular dichos resultados que nos devuelve la promesa usamos varios métodos luego de llamar la función. ".then" es el método usado para acceder al resultado que devuelve la promesa en caso de resolverse exitosamente (es decir, lo que arroja el "resolve()" ). Para poder usar dicho resultado, lo debemos pasar como parámetro a una función que será invocada por ".then". Éste parámetro puede llevar el nombre que queramos, pues sólo servirá para recibir el resultado de la promesa.
Espero haber sido lo suficientemente explicito para resolver tu duda.
Horacio Demaría
Muchas gracias, Jorge.
Me ayudó bastante, de todas maneras sigue sin quedarme claro si es sólo una peculiaridad(por decirlo de alguna manera) de las promesas que argumentos con diferentes nombres(y que los podríamos poner nosotros, no necesariamente, resolve, reject, response, respuesta), se correlacionen o identifiquen entre si. Para tu ejemolo, que respueta(que es "sepa") que lo que ella retorna en su console.log será el resolve de arriba.
Igual repito, me has ayudado bastante. Gracias
Jorge Méndez Ortega
Hola @Horacio-demaria.
En las promesas como comentas se aceptan 2 parametros los cuales como ya sabemos es resolve y reject estos funcionan para poder conseguir la respuesta de nuestra promesa.
Resolve: Nos permite conseguir la respuesta de la promesa cuando esta es satisfactorio prácticamente cuando no se consigue ningún error.
Reject: Nos permite conseguir la respuesta de la promesa cuando esta no es satisfactoria prácticamente cuando se genera un error.
// Ejemplo const asincronia = (list) => { //declaracion de la promesa. let promise = new Promise( (resolve, reject) => { //se valida que el parametro list sea un arreglo //y no este vacio if (list instanceof Array && list.length > 0) { let suma = list.map(valor => Math.pow(valor, 2)); resolve(suma); } //si no se cumple la condicion se manda un error. else { let error = new Error("Error de ejecución . . . :( "); reject(error); } }); return promise; };
Se lanza el código pero en esta parte esta lo interesante
asincronia([2, 3, 4, 5]) .then( respuesta => console.log(respuesta)) // Aquí es donde lo que se mando en el resolve se muestra. .catch( error => console.error(error)); // Aquí es donde lo que se mando en el reject se muestra.
Espero que esta breve explicación pueda aclarar tus dudas.😀