2

私が書く場合:

var source = new Array();
function doSomething(a){
   chrome.bookmarks.search(a,function(items){
      for(var i = 0;i<items.length;i++)
      {
          source[i] = items[i];

      }

   });
   console.log(source[0].title);
   alert(source[0].title);

}

コンソールで値を確認できますが、警告されたのは「未定義」です。

誰かが値を取得する理由と書き方を教えてもらえますか?

4

1 に答える 1

0

間違ったスコープで実行alertしています-これはコールバック関数で実行する必要があります。これを試して:

function doSomething(a){
   chrome.bookmarks.search(a,function(items){
      var source = [];
      for(var i = 0;i<items.length;i++)
      {
          source[i] = items[i];

      }
      console.log(source[0].title);
      alert(source[0].title);   
      doSomethingWithResult(source); 
   });      

}

この時点で(コールバック関数で)すでに入力されている値への参照が表示されるため、コンソールに正しい値が表示されています。

于 2012-04-24T04:14:25.817 に答える