我有一个问题,数组变得不确定,我无法弄清楚原因。
我声明变量ul,然后我从存储中获取数组并将其分配给ul,如果我尝试在get函数中使用它,它可以工作,我可以做任何我想做的事,如果我尝试做任何事情在get函数之外,它只是说它未定义。
function getUserList()
{
var ul;
chrome.storage.local.get({'users':[]}, function(result){ //get user array from storage
ul = result.users; //get users from result
console.log(ul); <-this works
});
console.log(ul); <- this does not
hideSubmissions(ul); <- or this
hideComments(ul); <- or this
};
getUserList();
我可以将使用ul的所有内容移动到get函数中,但是我想知道为什么这是必要的,我唯一可以猜到的是它在某种程度上超出了范围但我没有&#39;看看如何。
答案 0 :(得分:1)
.get函数以异步方式运行,因此当它完成时会调用完成处理程序,然后将ul设置为result.users。
然而,在设置之前,您已经输出(或尝试过)ul var。
就像评论所说的那样。