1

このループにコールバックを追加することは可能ですか?アプリに「これを実行する時が来ました..」を知らせる方法として..?

$(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?
4

1 に答える 1

1

非同期操作でも、終わったら関数を呼び出してみませんか?

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();
        }
    });
}); 
于 2013-02-27T16:15:21.637 に答える