es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

¿Dónde se define la función “resolve” en las Promesas de JavaScript?

Soy un traductor de español que traduce documentos de TI. Traduzca lo siguiente al español. No traduzca el código y la salida en markdown.

Soy nuevo en la programación y en JavaScript y no entiendo esos argumentos de “resolve” y “reject” del código a continuación.

const myPromise = new Promise((resolve, reject) => {
  setTimeout(() => {
    resolve('foo');
  }, 300);
});

myPromise
  .then(handleResolvedA, handleRejectedA)
  .then(handleResolvedB, handleRejectedB)
  .then(handleResolvedC, handleRejectedC);

Los tutoriales dicen que la clase Promise toma dos argumentos que son funciones. Pero ¿dónde están las funciones de resolución y rechazo? Si está escrito en esta clase de promesa, ¿no se escribirían esas funciones como myPromise.resolve?

También me gustaría saber si la clase de promesa siempre tiene que tomar resolución y rechazo como argumentos. ¿No puede ser resolución1 y resolución2? ¿Esos nombres están registrados o algo así?

“Resolve” y “reject” vienen de la nada y estoy confundido. Espero que alguien me ayude ;( gracias.

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Como experto en tecnología de la información especializado en JavaScript, Asynchronous, Promise y Resolve, puedo ayudar a aclarar la confusión. En el código proporcionado, resolve y reject no son argumentos de la clase Promise; en cambio, son las funciones que se pasan como argumentos a la función constructora de Promise. La función constructora de Promise toma un solo argumento que es una función con dos parámetros, resolve y reject.

    En el código, se crea una nueva Promise, y la función que se pasa a ella recibe dos funciones, resolve y reject, como parámetros. En este caso, el objeto Promise se resuelve después de 300ms con un valor de cadena “foo”. Después de eso, la Promise se encadena con múltiples llamadas al método .then(), las cuales reciben dos argumentos cada una. El primer argumento es una función que se ejecutará si la Promise se resuelve, y el segundo argumento es una función que se ejecutará si la Promise se rechaza.

    Los nombres resolve y reject no están reservados o registrados, y se pueden renombrar a cualquier nombre de identificador válido, pero es una convención mantenerlos nombrados como resolve y reject para mayor claridad.

    En resumen, resolve y reject son dos funciones que se pasan a una función constructora de Promise para manejar la resolución o el rechazo de una Promise, y no son una parte inherente de la clase Promise.

Comments are closed.