¡Caminando hacia el éxito!

Aprende en Comunidad

Avalados por :

Como resolver problemas com solicitações de chamada em JavaScript: Guia passo a passo

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

Olá, estou enfrentando um problema, tenho uma solicitação de chamada que está sendo feita perfeitamente, mas se estiver tudo bem, é necessário fazer uma segunda solicitação de chamada, essa segunda chamada nunca é feita (verifiquei na minha guia de rede sem resultados e coloquei um break mas nunca para), então talvez o problema seja a forma como o aplicativo está construído. É um pouco estranho porque antes isso funcionava bem, por isso acredito que isso possa ser resolvido fazendo essas chamadas como promessas (e estou confuso com o sucesso, erro e rejeição, não sei como lidar com tudo isso haha)

Este é o código:

$.each(oDetalle, function (i, valor) {
  // ALGUMAS OPERAÇÕES
  /*
    .
    .
    .
  */
  oModel.read("/ValRutDJSet('" + valorRut + "')", { // Esta se chama bem
    async: true,
    success: function (oDataRut) {
      // ALGUMAS ATRIBUIÇÕES
      /*
        .
        .
        .
      */
      oModel.read("/ValFacturaSet(PKunnr='" + kunnr + "',PNrofa='" + numeroFactura + "')", {
          async: true,
          success: function (oDataFac) {
            // NUNCA SE DETÉM AQUI OU NA FUNÇÃO DE ERRO DESSA CHAMADA
            //VALIDAR DATA
            try {
                oThis.mensagemErrorValidacionImport();
            } catch (err) {
                oThis.mensagemErrorValidacionImport("ERROS");
            }
          },
          error: function (err) {
            errorFinal = "Erro 500, não é possível comunicar com o servidor";
          },
        }
      );
    },
    error: function (err) {
      errorFinal = "Erro 500, não é possível comunicar com o servidor";
    },
  });
});

Pedro Pascal
Se unió el 07/03/2018
Pinterest
Telegram
Linkedin
Whatsapp

1 Respuestas

0
Cargando...

Olá naoto_a ,

O código pode parecer assim. Não testei o código a seguir, ainda pode conter erros.

$.each(oDetalle, function (i, valor) {
    // ALGUMAS OPERAÇÕES
    new Promise((resolve, reject) => {
        oModel.read("/ValRutDJSet('" + valorRut + "')", {
            async: true,
            success: (oDataRut) => {
                // ALGUMAS ATRIBUIÇÕES
                resolve(/*Passar os resultados para a função de resolve para tê-los disponíveis no próximo passo*/);
            },
            error: reject
        })
    })
    .then((oResult /* Resultado do primeiro resolve*/) => {
        return new Promise((resolve, reject) => {
            oModel.read("/ValFacturaSet(PKunnr='" + kunnr + "',PNrofa='" + numeroFactura + "')", {
                async: true,
                success: function (oDataFac) {
                    try {
                        oThis.mensagemErroValidacaoImport();
                        resolve()
                    } catch (err) {
                        oThis.mensagemErroValidacaoImport("ERROS");
                        reject(err)
                    }

                },
                error: reject
            });
        })
    }).catch((err) => {
        // Tratamento de erros
        errorFinal = "Erro 500, não é possível comunicar com o servidor";
    })
});
Respondido el 15/04/2024
LUCIANO RIOJA GHIOTTO
Se unió el 13/07/2019

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?