数组未定义在运行时函数之外

时间:2015-07-24 17:29:37

标签: javascript arrays google-chrome-extension

我有一个问题,数组变得不确定,我无法弄清楚原因。

我声明变量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;看看如何。

1 个答案:

答案 0 :(得分:1)

.get函数以异步方式运行,因此当它完成时会调用完成处理程序,然后将ul设置为result.users。

然而,在设置之前,您已经输出(或尝试过)ul var。

就像评论所说的那样。