我正在尝试为每个项目显示目录的内容以及lastModified
属性。不幸的是,要获取属性,必须在每个条目上调用.file()
方法,这使得整个循环非常有问题。 console.log
输出一个数组,据报告其中包含零项,但实际上您可以展开它并查看其中填充的所有项目。
我想知道什么是正确的模式。此外,尝试找到entries.sort()
方法的API但找不到任何。
以下代码借鉴了一个例子,根据我的需要进行了调整。
fs.root.getDirectory('recent', {create: true}, function (recentDir) {
var dirReader = recentDir.createReader();
var entries = [];
var readEntries = function () {
dirReader.readEntries(function (results) {
if (!results.length) {
listResults(entries.sort());
} else {
entries = entries.concat(toArray(results));
readEntries();
}
}, fsErrorHandler);
};
readEntries();
function toArray(list) {
return Array.prototype.slice.call(list || [], 0);
}
function listResults(entries) {
var list = [];
entries.forEach(function (entry, i) {
entry.file(function (data) {
list.push(data); // <- async
});
});
console.log(list);
}
});