chrome.fileSystem - 保留/恢复多个文件条目?

时间:2016-03-27 07:30:00

标签: javascript arrays google-chrome

我有两个功能:saveData()loadData()saveData()遍历所有对象,并且(假设)使用chrome.storage.local.set设置字符串ID和值,稍后将使用loadData()返回。现在,据说是因为它不起作用。重新启动应用程序的结果是保存的最后一个条目。

//I have an array 
//called 'fileEntries'
//which the user adds fileEntry objects to
//when they add a tab or open a file
var fileEntries = [];
function saveData(){ 
  fileEntries.forEach(function(entry){
    //the string id should just be the
    //index of the entry object within the array
    //so something like '1' or '2'
    var stringID = fileEntries.indexOf(entry),
        value = chrome.fileSystem.retainEntry(entry);
    chrome.storage.local.set({ stringID : value });
  });
}
function loadData(){
  chrome.storage.local.get({stringID : null}, function(result){
    chrome.fileSystem.restoreEntry(result.stringID, function(entry){
      //adds the resulting entry into the array
      fileEntries.push(entry);
    })
  })
}

有谁知道如何提供帮助?它真的困扰着我,我尝试过其他一些方法无济于事。任何帮助将不胜感激:)

如果问题不清楚:如何保存多个文件条目,然后使用chrome fileSystem API单独还原它们?

1 个答案:

答案 0 :(得分:0)

使用.forEach()的第二个参数;例如。; .forEach(function(_, enttry){}),其中entry是数组中迭代元素的index.forEach()回调的第一个参数是value。如果不使用value,您可以使用下划线表示省略其用法。然后,您仍然可以在entry回调的js的剩余时间内使用现有的.forEach()变量名称。