• Empleos
  • Sobre nosotros
  • profesionales
    • Inicio
    • Empleos
    • Cursos y retos
    • Preguntas
    • Profesores
  • empresas
    • Inicio
    • Publicar vacante
    • Nuestro proceso
    • Precios
    • Pruebas Online
    • Nómina
    • Blog
    • Comercial
    • Calculadora de salario

0

110
Vistas
Javascript: cambia dos funciones luego/estilo de captura en el estilo asíncrono/espera

Estoy tratando de entender cómo la función .then() puede obtener dos argumentos como este.

 const promise = doSomething(); const promise2 = promise.then(successCallback, failureCallback);

o

 const promise2 = doSomething().then(successCallback, failureCallback);

pero quiero convertir dos argumentos .then() a async/await await así.

 const result = await doSomething() // execute successCallback if success. // execute failureCallback if failure.

Este es el sitio web que estoy tratando de aprender.

Desarrollador de Mozilla Firefox: uso de promesa

Desarrollador de Mozilla Firefox: Encadenamiento de promesas

almost 3 years ago · Juan Pablo Isaza
3 Respuestas
Responde la pregunta

0

Cuando await una promesa que se resuelve, obtienes directamente su valor:

 const result = await doSomething();

Cuando await una promesa que rechaza, lanza una excepción que puede dejar que se propague de nuevo a la persona que llama de la función actual (como una promesa rechazada ya que todas las funciones async devuelven una promesa y las funciones asíncronas convierten las excepciones no detectadas en una promesa rechazada) o puedes atraparlo tú mismo localmente con try/catch .

 try { const result = await doSomething(); } catch(e) { console.log(e); }

No se recomienda asignar promesas a devoluciones de llamada. Es mucho mejor simplemente devolver la promesa y dejar que la persona que llama se ocupe de la promesa directamente con .then() o await .

Si realmente necesitara asignar await a successCallback y failureCallback , entonces haría esto:

 try { const result = await doSomething(); successCallback(result); } catch(e) { failureCallback(e); }

Pero, en ese punto, también puede usar .then() ya que es menos código:

 doSomething().then(successCallback, failureCallback);

Pero, como dije antes, por lo general no desea asignar promesas a devoluciones de llamadas. Es más probable que incluya API antiguas basadas en devolución de llamada en promesas para que pueda usar promesas para todo su flujo de control y no mezclar/coincidir modelos (lo que tiende a complicar seriamente el buen manejo de errores cuando mezcla modelos).

almost 3 years ago · Juan Pablo Isaza Denunciar

0

Usa intentar... atrapar

 try { const result = await doSomething() // success successCallback(); } catch (e) { // error failureCallback();
almost 3 years ago · Juan Pablo Isaza Denunciar

0

Puede envolver doSomething en un método de captura de prueba para capturar el éxito y fallar así.

 try { const result = await doSomething() } catch (err) { console.log(err.message) }
almost 3 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Nuestro proceso Comercial
Legal
Términos y condiciones Política de privacidad
© 2025 PeakU Inc. All Rights Reserved.

Andres GPT

Recomiéndame algunas ofertas
Necesito ayuda