从chrome.storage中检索数据

时间:2017-03-12 05:06:23

标签: javascript google-chrome asynchronous

我试图从chrome.storage.sync.get检索数据,但我无法这样做。 chrome.storage.sync.get是异步的,我正在使用回调,但我想我错过了一些东西。

function getSnippetsIds(callback) {

  chrome.storage.sync.get("snippets.ids", function(data) {
  var ids = [];
  for (var key in data['snippets.ids']) {
    if ( data['snippets.ids'][key] === true ) {
      ids.push(key);
    }
  }       
   callback(ids);
  });

}

var test;

// callback function
function logVal(val) {
  test =  val.join(',');
  return test;
}
console.log(test) // undefined    

var snippetsIds = getSnippetsIds( logVal );
console.log(snippetsIds) // undefined

预期产量: console.log(snippetsIds) // [Array]

现在有了一个对象:

var snippetIds = {} 
function logVal(val) {
  snippetIds.value = val.join(',');
}

getSnippetsIds( logVal );
  1. console.log(snippetIds)

    output

  2. console.log(snippetIds.value) // undefined

  3. 工作示例:

    chrome.storage.sync.set( { myStorageKey: 'any value' } );
    
    var store = {};
    chrome.storage.sync.get('myStorageKey', function(obj) {  
     store.val = obj;
    });
    console.log(store); // empty
    console.log(store.val); // undefined
    

0 个答案:

没有答案