2012-01-04 126 views
0

我正在阅读我的内容脚本中Chrome的扩展localStorage。如果我将变量记录到控制台,一切运作良好。如果我想提醒它,它说变量是未定义的。返回一个变量 - undefined

var data666; 

chrome.extension.sendRequest({method: "getLocalStorage", key: "autoplay"}, function(response) { 
    console.log(response.data); // works perfectly 
    data666 = response.data; 
}); 

alert(data666); // does not work 

编辑:我需要使用变量(在这种情况下data666)异步函数的外部。

+0

只需将你需要的任何内容放入函数中,然后从回调函数中调用该函数。 – 2012-01-04 13:42:21

回答

3

请注意,sendRequest是一个异步函数,数据的值将不会被设置,直到sendRequest执行回调函数。

因此,您需要将alert语句移到回调函数中。

chrome.extension.sendRequest({method: "getLocalStorage", key: "autoplay"}, function(response) { 
    console.log(response.data); // works perfectly 
    data666 = response.data; 
    alert(data666); 
}); 
+0

谢谢。我已经介绍过了,但我需要在函数外部使用该变量。 – 2012-01-04 13:43:50

+0

不,我怕你必须在回调函数中包装下面的过程。 – qiao 2012-01-04 13:46:39

+0

谢谢。它可以做到,即使代码看起来杂乱难看...... – 2012-01-04 13:47:35