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

272
Visualizações
Quiero ejecutar 4 api en paralelo desde mi javascript para mostrar datos en cada pestaña, pero especificar asíncrono: verdadero en ajax da un resultado entero incorrecto

Tengo 4 pestañas en html y tengo que llamar a 4 api diff que devuelven json y muestran esa salida en cada pestaña.

ingrese la descripción de la imagen aquí

Ahora el problema es que, cuando escribo ajax staments uno tras otro con async: false, la página se carga y lleva tiempo, ya que llama a las 4 api una tras otra.

Quiero que los datos en la primera pestaña "panel" se carguen primero, ya que aparecen rápidamente. Mientras tanto, las otras pestañas se están cargando.

 $.ajax({ url : base_url+"es/kernelStats", type : "get", async : false, dataType: 'json', success : function(data) { console.log("ES Data ",Object.values(data)); drawDataTable(data,"es"); } }); $.ajax({ url : base_url+"tab1/stats", type : "get", async : false, dataType: 'json', success : function(data) { console.log(" Data ",data); drawDataTable(data,"tab1"); } }); $.ajax({ url : base_url+"tab2/Stats", type : "get", async : false, success : function(data) { console.log("Data ",data); drawDataTable(data,"tab2"); } }); $.ajax({ url : base_url+"tab3/Stats", type : "get", async : false, success : function(data) { console.log("Data ",data); drawDataTable(data,"tab3"); } }); $.ajax({ url : base_url+"tab4/Stats", type : "get", async : false, success : function(data) { console.log("Data ",data); drawPatchingDataTable(data,"tab4"); }

El problema es que cada API tarda de 3 a 4 segundos en obtener datos y, cuando se ejecuta secuencialmente, tarda de 12 a 15 segundos, lo que no es deseable.

Cuando cambio async: true, en todo lo anterior, entonces las salidas json que dan algunos cambios de valores numéricos y los datos no son confiables.

También probé esto usando fetch api, (utilicé declaraciones de fetch/promise.all) pero todos estos dan una respuesta incorrecta.

about 4 years ago · Juan Pablo Isaza
2 Respostas
Responde à pergunta

0

Promise.all es el método a utilizar. Deberías darle otra oportunidad

about 4 years ago · Juan Pablo Isaza Relatório

0

Nota: ese tiempo solo tomará ese tiempo, pero puede probar este método puede ser este trabajo o puede hacer algunos cambios en eso,

 const fireApi = (url, param, afterSuccess) => { $.ajax({ url : base_url+url, type : "get", success : function(data) { console.log("Data ",data); afterSuccess(data, param) } }); } fireApi("tab1/stats", "tab1", drawDataTable) fireApi("tab2/stats", "tab2", drawDataTable) fireApi("tab3/stats", "tab3", drawDataTable) fireApi("tab4/stats", "tab4", drawPatchingDataTable)
about 4 years ago · Juan Pablo Isaza 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