2017-10-28 44 views
0

我有回調此函數:錯誤與異步js函數和記錄

function getStorageByKey(key, callback) { 
    chrome.storage.sync.get(key, function(obj, callback) { 
    var error = chrome.runtime.lastError; 
     if (error) { 
      console.error(error); 
     } 
    callback(obj) 
    }); 
} 

我試圖登錄是這樣的輸出:

getStorageByKey('hidden_threads', function (data) { 
     console.log(data); 
    }); 

我收到以下錯誤:

Error in response to storage.get: TypeError: callback is not a function 
    at Object.callback (chrome-extension://nnaebcfbeghbbdkcgdicmlagdblheccm/content.js:37:3) 
    at getStorageByKey (chrome-extension://nnaebcfbeghbbdkcgdicmlagdblheccm/content.js:32:23) 
    at HTMLDocument.<anonymous> (chrome-extension://nnaebcfbeghbbdkcgdicmlagdblheccm/content.js:8:3) 
    at j (chrome-extension://nnaebcfbeghbbdkcgdicmlagdblheccm/jquery.min.js:2:29999) 
    at k (chrome-extension://nnaebcfbeghbbdkcgdicmlagdblheccm/jquery.min.js:2:30313) 
+0

@Vasan這工作!如果你想把它寫成答案,我會接受它。 – metersk

+0

完成了,我已經成爲一個答案! :-) – Vasan

回答

1

function(obj, callback) - 這個功能是通過chrome.storage.sync.get一旦它完成了自己的親調用cessing。因此,第二個callback參數將被chrome.storage.sync.get(如果有的話)傳遞,並且您在此函數之外聲明的callback變量將被忽略。

所以刪除參數callback這個功能,這將使它使用callback變量從外部範圍。