0

Tengo un problema, yo primero creo una array llamado "errores", si en mis solicitudes ajax se encuentran problemas entonces voy hacer un push en el array, pero nada ya depure el codigo y no llena el array osea no hace push, pero si agrego un alert en su lugar pues hay si lo llama, quiere decir que si entra en .fail, pero no se por que no funciona el push, alguien que me ayude por fa

const inicioClass = (function() {

  var errores = [];

  var obtenerSliders = function() {
    var request = $.ajax({
      url: "models/slider/obtenerSliders.php",
      method: "POST",
      dataType: "json"
    });

    request.done(function(response) {
      if (response.length > 0) {
        for (var i = 0; i < response.length; i++) {
          // prettier-ignore
          var template = "Slider"

          $("#div-sliders").append(template);
        }
      }
    });

    request.fail(function() {
    //aqui no hace el push, pero si entra en fail
      errores.push("Slider");
    });
  };

 
  var verificarPagina = function() {
    if(errores.length > 0){
      //mostrarMensajeAlerta();
    }
  };

  // Public Functions
  return {
    // public functions
    init: function() {
      obtenerSliders();
      verificarPagina();
    }
  };
})();


// Class Initialization
$(document).ready(function() {
  inicioClass.init();
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

1 Answers1

2

Revisa este snippet, no hice nada, solo agrega consoles para validar como se comportaba tu código y funciona , solo tiene agregada la referencia Jquery, Si revisas el metodo verificarPagina se esta ejecutando primero que el que inserta los errores en el array

const inicioClass = (function() {
console.log('incial el metodo inicioClass');

  var errores = [];
console.log('array errores' + errores);
  var obtenerSliders = function() {
    var request = $.ajax({
      url: "models/slider/obtenerSliders.php",
      method: "POST",
      dataType: "json"
    });

    request.done(function(response) {
      if (response.length > 0) {
        for (var i = 0; i < response.length; i++) {
          // prettier-ignore
          var template = "Slider"

          $("#div-sliders").append(template);
        }
      }
    });

    request.fail(function() {
    //aqui no hace el push, pero si entra en fail
      errores.push("Slider 1");
      errores.push("Slider 2");
      console.log('Array push - ' + errores)
    });
  };

 
  var verificarPagina = function() {
   
      //mostrarMensajeAlerta();
       console.log('Array verifica - ' + errores)
    
  };

  // Public Functions
  return {
    // public functions
    init: function() {
      obtenerSliders();
      verificarPagina();
    }
  };
})();


// Class Initialization
$(document).ready(function() {
  inicioClass.init();
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
FRANCISCO J. BLANCO
  • 2,013
  • 1
  • 10
  • 29