Javascript chrome本地存储异步将数据正确传递到回调

Javascript chrome本地存储异步将数据正确传递到回调,javascript,google-chrome,google-chrome-extension,Javascript,Google Chrome,Google Chrome Extension,1) 如何在此回调中使用“data”和“data2”?我只是不知道如何将数据正确地传递到回调中。我是否创建了一个全局模型 2) 看起来我可以使用它们,但据我所知,它是异步的,而且我担心func()将在调用回调之前结束,届时data和data2都将超出范围,使它们无法使用。这样做的正确方法是什么?您将通过所谓的 你不必做任何不同的事情。只需像普通一样使用变量。您只需使用它们 通过在回调中引用它们,您可以创建一个,这样它们将在func完成执行后继续存在,直到没有对它们的引用为止 但是,在回调执行之前

1) 如何在此回调中使用“data”和“data2”?我只是不知道如何将数据正确地传递到回调中。我是否创建了一个全局模型


2) 看起来我可以使用它们,但据我所知,它是异步的,而且我担心func()将在调用回调之前结束,届时data和data2都将超出范围,使它们无法使用。这样做的正确方法是什么?

您将通过所谓的

你不必做任何不同的事情。只需像普通一样使用变量。

您只需使用它们

通过在回调中引用它们,您可以创建一个,这样它们将在
func
完成执行后继续存在,直到没有对它们的引用为止

但是,在回调执行之前,确保它们不会更改是很重要的。在你的情况下,这不是一个问题,但如果它们来自外部范围,你需要记住这一点。

祝贺你,你先进入:)不过,我决定也保留我的答案。
function func(data) {
    var data2 = {'apple', 'pear'};

    chrome.storage.local.get("key", function(items) {
        // Lots of code here that takes time.
        // use "data"
        // use "data2"
    }
}