2012-01-04 150 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