Javascript 将回调添加到$(xml).find(";).each
是否可以将回调添加到此循环?作为让应用程序知道“现在是时候这么做了…”的一种方式Javascript 将回调添加到$(xml).find(";).each,javascript,jquery,Javascript,Jquery,是否可以将回调添加到此循环?作为让应用程序知道“现在是时候这么做了…”的一种方式 即使是异步操作,为什么不在完成后调用函数呢 function done(){ // completed... } var total = $(xml).find("book").length; $(xml).find("book").each(function(index, element){ var id = $(this).find("id").text(); var x = $(th
即使是异步操作,为什么不在完成后调用函数呢
function done(){
// completed...
}
var total = $(xml).find("book").length;
$(xml).find("book").each(function(index, element){
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
if(total == index+1)
done();
}
});
});
即使是异步操作,为什么不在完成后调用函数呢
function done(){
// completed...
}
var total = $(xml).find("book").length;
$(xml).find("book").each(function(index, element){
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
if(total == index+1)
done();
}
});
});
只需调用函数。为什么不呢?不,没有。这是一个同步操作,因此$each不需要回调。但是,如果
//做某事做了一个异步操作,比如ajax,那么您需要使用延迟对象来跟踪它们何时全部完成。是的。。。回调主要用于异步功能。。。您希望在后台继续处理时释放程序以避免阻塞的区域。但是,在这种情况下,我看不到任何可以异步的东西。只需调用函数即可。为什么不呢?不,没有。这是一个同步操作,因此$each不需要回调。但是,如果//做某事做了一个异步操作,比如ajax,那么您需要使用延迟对象来跟踪它们何时全部完成。是的。。。回调主要用于异步功能。。。您希望在后台继续处理时释放程序以避免阻塞的区域。但是,在这种情况下,我看不到任何可以异步的东西。我认为这是最好的方法。但是我建议在执行每个循环之前声明done函数,我认为这是最好的方法。但是我建议在执行each循环之前声明done函数。