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"
}
}
1)如何在此回调中使用“data”和“data2”?我只是不确定如何正确地将这些数据传递给回调。我是否创建了全局?
2)好像我可以使用它们,但是根据我的理解,它是异步的,我担心func()会在调用回调之前结束,并且到那时数据和data2都将超出范围,使它们无法使用。这样做的正确方法是什么?
答案 0 :(得分:1)
您将通过名为Closure Scope的内容保留对data
和data2
变量的访问权限。
你不必做任何不同的事情。只需使用正常的变量。
答案 1 :(得分:0)
你只需使用它们。
通过在回调中引用它们,您可以创建closure,因此它们将在func
执行完毕后继续存在,直到没有对它们的引用为止。
但是,确保在回调执行之前不要更改它们非常重要。在你的情况下,它不是一个问题,但如果它们来自外部范围,你需要牢记这一点。