0

すべての変数iについて、以下のコードは各ブックマークノードをトラバースし、URLが存在するかどうかに関係なく比較する必要があります。

for(i=0;i<arg1;i++){
    chrome.bookmarks.getChildren(Traverse[i], function(child){       //to fetch the child nodes
        Loc =child.length;
        alert(Loc);   // This message to appear first
        if(Loc != 0){
            child.forEach(function(book) {
                if (book.url == urL){
                    alert("Bookmark already exist");
                    element = "init";
                }   
            }); 
        }
    });
alert("message to be printed last");
}

メソッドが非同期であるため、最後のメッセージが表示され、ブックマークのトラバースは行われません。どんな助けでも大歓迎です。

ありがとう !!

4

1 に答える 1

0

おそらく閉鎖が必要です:

for(i=0;i<arg1;i++){
    (function(my_i) {
        chrome.bookmarks.getChildren(Traverse[my_i], function(child){
            Loc =child.length;
            alert(Loc);
            if(Loc != 0){
                child.forEach(function(book) {
                    if (book.url == urL){
                        alert("Bookmark already exist");
                        element = "init";
                    }   
                }); 
            }
        });
    })(i);
    alert("message to be printed last");
}

ループ内の各反復でLocと変数の両方を上書きしていることをご存知だと思いますか?element

于 2013-03-24T12:01:44.853 に答える