Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

252
Visualizações
JS: extraer una resolución en Promise no obtiene el mismo resultado

Tengo el siguiente bloque de código:

 async done() => { return new Promise((resolve, reject) => { const events = new Map(); events.set('CLOSE_CLICK_EVENT', () => { //other logic resolve(false); }); } }

Estoy tratando de eliminar la "otra lógica" a una función externa. Mi otro enfoque es el siguiente:

enfoque revisado:

 async done() => { return new Promise((resolve, reject) => { const events = new Map(); events.set('CLOSE_CLICK_EVENT', () => { return this._doneCloseButtonHandler(events); }); } } async _doneCloseButtonHandler(events) { //other logic return false; }

Sin embargo, el segundo enfoque no parece comportarse de la misma manera: ¿por qué la Promesa se resuelve de manera diferente? La Promesa no parece resolverse cuando trato de usar el segundo enfoque.

about 4 years ago · Santiago Gelvez
2 Respostas
Responde à pergunta

0

En el segundo enfoque, nunca está llamando a la función de resolve , por lo que no puede resolverse, debe encadenarlo:

 return this._doneCloseButtonHandler(events).then(resolve, reject);

Editar: según la solicitud de OP, también hay una forma de resolver dentro de la función _doneCloseButtonHandler cuando pasa la resolve como argumento:

 return this._doneCloseButtonHandler(events, resolve) // ... function _doneCloseButtonHandler(event, resolve) { // .... resolve() }
about 4 years ago · Santiago Gelvez Relatório

0

Para extraer la "otra lógica", primero debe refactorizar su función para

 async done() { const _ = await new Promise((resolve, reject) => { const events = new Map(); events.set('CLOSE_CLICK_EVENT', resolve); // do something with `events` }); // other logic that should happen when the CLOSE_CLICK event occurs return false; }

(el _ corresponde a lo que se pasará a la llamada de resolve ).

Luego puede extraer la otra lógica en una función separada.

about 4 years ago · Santiago Gelvez Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda