我有两个功能: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单独还原它们?
答案 0 :(得分:0)
使用.forEach()
的第二个参数;例如。; .forEach(function(_, enttry){})
,其中entry
是数组中迭代元素的index
。 .forEach()
回调的第一个参数是value
。如果不使用value
,您可以使用下划线表示省略其用法。然后,您仍然可以在entry
回调的js
的剩余时间内使用现有的.forEach()
变量名称。