Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

154
Vistas
Cómo hacer el manejo de errores en Angular (Sweetalert2)

Aquí está el código donde uso la confirmación de eliminación. Quiero agregar Manejo de errores. Si no elimina los datos, entonces puedo manejar el error.

 confirmPopUp(){ Swal.fire({ title: 'Are You Sure?', text: 'Deleting Service Team Detail', icon: 'warning', showCancelButton: true, confirmButtonText:('Yes, delete it'), cancelButtonText: 'No, Keep it' }).then((result) => { if(result.value){ this.deleteServiceTeamById(40); Swal.fire( 'Deleted!', 'Your imaginary File has been Deleted', 'success' ) } else if (result.dismiss === Swal.DismissReason.cancel){ } }) }

Quiero agregar una solución similar a esa pero no puedo entender cómo agregar esto en mi código

Ejemplo:

 that.http.get(url, {"headers": headers}) .map(res => res) .subscribe(data => { console.log(data); if (data.status === 200) { resolve(); } else { reject(data.status); } }) })
about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

Ambas son tareas asíncronas, lo que significa que deben esperar a que la tarea ejecute cualquier código después de eso,

hay varias formas de manejar esto, pero una de las más fáciles que puedo sugerir es esta (con las modificaciones que hice): Importante: haré esta sugerencia basándome en los fragmentos de código dados, esto no significa que esta sea la única solución .

Lógica de solicitud Http (basada en promesas):

 /** * the Http delete request to the API * */ deleteHttpRequest(url, headers){ return new Promise((resolve,reject) => { this.http.get(url, {"headers": headers}) .map(res => res) // .map in this case has no sense you can remove it .subscribe( data => { console.log(data); if (data.status === 200) { resolve(); } else { reject(data.status); } }, serverError => { reject(serverError.error); // basing on HttpResponseError } ); }); } }

Confirmar ventana emergente

 /** * Confirm before delete */ confirmPopUp(confirmCallBack, cancelCallback){ Swal.fire({ title: 'Are You Sure?', text: 'Deleting Service Team Detail', icon: 'warning', showCancelButton: true, confirmButtonText:('Yes, delete it'), cancelButtonText: 'No, Keep it' }).then((result) => { if(result.value){ confirmCallBack(); // <======= Here we will execute Http request } else if (result.dismiss === Swal.DismissReason.cancel){ cancelCallback(); // <======== Here you can do whatever you want after canceling your delete action. } }) }

Pon todo en uno:

 /** * Call popup confirmation then execute logic basing on confirmation status (confirm : execute http Request, cancel: do whatever you want) */ executeHttpAndGetResult() { this.confirmPopUp( () => { // when confirmed we will call deleteHttpRequest (confirmCallBack) this.deleteHttpRequest(url, headers) .then( res => { // when delete successed Swal.fire('Deleted!','Your imaginary File has been Deleted', 'success'); .catch( // catch will be called whenever data.status !== 200 or there is a server Error returned. error => { // display an error popup or whatever } ); }, // when confirmation was canceled what we will do (cancelCallback) () => { // @todo } ); }
about 4 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 Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda