¡Caminando hacia el éxito!

Aprende en Comunidad

Avalados por :

Cómo resolver problemas con solicitudes de llamada en JavaScript: Guía paso a paso

  • Creado 01/03/2024
  • Modificado 01/03/2024
  • 0 Vistas
0
Cargando...

Hola, me enfrento a un problema, tengo una solicitud de llamada que se realiza perfectamente, pero si está bien, se necesita hacer una segunda solicitud de llamada, esta segunda llamada nunca se realiza (verifiqué en mi pestaña de red sin resultados y puse un break pero nunca se detiene), así que tal vez el problema sea la forma en que está construida la aplicación. Es un poco extraño porque antes esto funcionaba bien, por eso creo que esto podría resolverse haciendo estas llamadas como promesas (y estoy confundido por el éxito, error y rechazo, no sé cómo manejar todo esto jaja)

Este es el código:

$.each(oDetalle, function (i, valor) {
  // ALGUNAS OPERACIONES
  /*
    .
    .
    .
  */
  oModel.read("/ValRutDJSet('" + valorRut + "')", { // Esta se llama bien
    async: true,
    success: function (oDataRut) {
      // ALGUNAS ASIGNACIONES
      /*
        .
        .
        .
      */
      oModel.read("/ValFacturaSet(PKunnr='" + kunnr + "',PNrofa='" + numeroFactura + "')", {
          async: true,
          success: function (oDataFac) {
            // NUNCA SE DETIENE AQUÍ O EN LA FUNCIÓN DE ERROR DE ESTE LLAMADO
            //VALIDAR FECHA
            try {
                oThis.mensajeErrorValidacionImport();
            } catch (err) {
                oThis.mensajeErrorValidacionImport("ERRORES");
            }
          },
          error: function (err) {
            errorFinal = "Error 500, no se puede comunicar con el servidor";
          },
        }
      );
    },
    error: function (err) {
      errorFinal = "Error 500, no se puede comunicar con el servidor";
    },
  });
});

Pinterest
Telegram
Linkedin
Whatsapp

1 Respuestas

0
Cargando...

Hola naoto_a ,

El código podría verse así. No probé el siguiente código, aún podría contener errores.

$.each(oDetalle, function (i, valor) {
    // ALGUNAS OPERACIONES
    new Promise((resolve, reject) => {
        oModel.read("/ValRutDJSet('" + valorRut + "')", {
            async: true,
            success: (oDataRut) => {
                // ALGUNAS ASIGNACIONES
                resolve(/*Pasar los resultados a la función de resolve para tenerlos disponibles en el próximo paso*/);
            },
            error: reject
        })
    })
    .then((oResult /* Resultado de primera resolve*/) => {
        return new Promise((resolve, reject) => {
            oModel.read("/ValFacturaSet(PKunnr='" + kunnr + "',PNrofa='" + numeroFactura + "')", {
                async: true,
                success: function (oDataFac) {
                    try {
                        oThis.mensajeErrorValidacionImport();
                        resolve()
                    } catch (err) {
                        oThis.mensajeErrorValidacionImport("ERRORES");
                        reject(err)
                    }

                },
                error: reject
            });
        })
    }).catch((err) => {
        // Manejo de errores
        errorFinal = "Error 500, no se puede comunicar con el servidor";
    })
});

contacto@primeinstitute.com

(+51) 1641 9379
(+57) 1489 6964

© 2024 Copyright. Todos los derechos reservados.

Desarrollado por Prime Institute

¡Hola! Soy Diana, asesora académica de Prime Institute, indícame en que curso estas interesado, saludos!
Hola ¿Puedo ayudarte?