如果我写:
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);
}
在控制台中我可以看到值,但警告的是“未定义”。
有人可以告诉我为什么以及如何写来获取价值?
答案 0 :(得分: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);
});
}
您在控制台中看到了正确的值,因为它显示了此时已经填充的值的引用(在回调函数中)。