Tengo la siguiente llamada ajax
var listaTurnos = []
$(document).ready(function() {
$.ajax({
type: 'POST',
url: 'ajax/turnos2.ajax.php',
dataType: "json",
data: { item: "a" },
success: function(data) {
data.forEach(e => {
listaTurnos.push(e["datos"])
});
},
error: function(data) {
}
});
});
La cosa es que no entiendo el tema de la asincronia de ajax, porque si yo tiro un console.log(listaTurnos) recibo lo siguiente:
[]
0: "{"title":"Agustin Guerra","start":"2020-03-12T10:30:00","end":"2020-03-12T11:30:00"}
↵"
1: "{"title":"Mariel Guerrieri","start":"2020-03-15T09:30:00","end":"2020-03-15T10:30:00"}
↵"
length: 2
__proto__: Array(0)
Pero si yo en cambio pusiera
console.log(listaTurnos.length)
El resultado de la consola es 0.
>En un principio yo realice esta pregunta para saber cómo recorrer un objeto. Lo extraño es que otras veces he logrado hacerlo, y ahora no funcionaba. Preguntando por ahi me dijeron que ajax como es asincronico, en momentos va a cargar mi variable y en otros no. Quisiera poder manejar eso
Este era mi objetivo principal, pero ahora la idea es entender cuando ajax hace lo que hace y porque
Quisiera, a partir de este objeto, obtener un string que sea:
[
{
title: 'Agustin Guerra',
start: '2020-03-12T10:30:00',
end: '2020-03-12T11:30:00'
},
{
title: 'Mariel Guerrieri',
start: '2020-03-15T09:30:00',
end: '2020-03-15T10:30:00'
}
]
Intento recorrer con un foreach por ejemplo
listaTurnos.forEach(e => {
console.log(e)
});
Y no retorna nada. Yo quisiera recorrerlo para obtener al menos sus elementos de la forma {"title":"Agustin Guerra","start":"2020-03-12T10:30:00","end":"2020-03-12T11:30:00"}
y despues trabajarlos con algun metodo de reemplazo de caracteres para llegar a mi objetivo. La cosa es que no estoy dandome cuenta de que método utilizar para iterar el objeto.
EDIT: dentro del
success
deajax
, si hagoconsole.log(data)
obtengo
(2) [{…}, {…}]
0: {id: "1", datos: "{"title":"Agustin Guerra","start":"2020-03-12T10:30:00","end":"2020-03-12T11:30:00"}
↵"}
1: {id: "2", datos: "{"title":"Mariel Guerrieri","start":"2020-03-15T09:30:00","end":"2020-03-15T10:30:00"}
↵"}