loadInfo: function(){
var jsonCounter = 0,
room = ['room1','room2','room3'],
dates = [],
prices = []
$.each(booking.rooms, function(key, room_name) {
$.getJSON('/get_info.php?room='+room_name, function(data) {
dates[room_name] = data
jsonCounter++
})
$.getJSON('/get_info.php?room='+room_name+'&prices', function(data) {
prices[room_name] = data
jsonCounter++
})
})
function checkIfReady() {
if (jsonCounter === rooms.length * 2) {
clearInterval(timer)
run_the_rest_of_the_app()
}
}
var timer = setInterval(checkIfReady, 100)
}
(Modificado mucho, ya que es parte de una clase, etc, etc)Firing devolución de llamada después de múltiples peticiones Ajax es completa
En el momento en que esto se siente un poco hacker, como el uso del temporizador parece basura. Yo usaría $ .when y $ .done, pero no sé cuántas salas podría haber, así que no sé qué poner cuando.
¿Cómo me aseguro de que run_the_rest_of_the_app() solo reciba una llamada una vez que todas las solicitudes AJAX vuelvan?
+1 muy elegante –