2017-10-28 31 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变量从外部范围。