Можно ли добавить обратный вызов в этот цикл? Как способ сообщить приложению «теперь пришло время сделать это ..» ..?
$(xml).find("book").each(function(){
var id = $(this).find("id").text();
var x = $(this).find("x").text();
var y = $(this).find("y").text();
var z = $(this).find("z").text();
hasItem(id, x, y, z, function(flag, id, x, y, z) {
if(!flag) {
//doing something
}
});
});
//add callback to tell me that all rows of xml has been read and hasItem is done reading?
Просто позвоните в функцию. Почему нет? – Alexander
Нет, нет. Это синхронная операция, поэтому обратный вызов не требуется для $ .each. Однако, если '// делать что-то' делает асинхронное действие, такое как ajax, вам нужно будет использовать отложенные объекты для отслеживания, когда все они будут завершены. –
Да ... обратные вызовы предназначены в первую очередь для асинхронных функций ... областей, в которых вы хотите освободить программу от блокировки, а обработка продолжается в фоновом режиме. Однако в этом случае я не вижу ничего, что могло бы быть асинхронным. –