我使用Ionic Native来读取用户设备中的文件,但我需要按修改日期对它们进行排序。
读取文件的方法返回Promise<Entry[]>
。要查找修改日期,我需要调用具有以下签名的Entry
&n; getMetadata
方法:
getMetadata(successCallback: MetadataCallback, errorCallback?: ErrorCallback): void;
然后在成功回调中,我可以访问Metadata
对象,该对象具有我需要进行排序的modificationDate
属性。
我很感激我能得到的任何帮助。
答案 0 :(得分:1)
您可以从promisifying getMetadata
方法开始:
function getMetadataPromise(entry) {
return new Promise((resolve, reject) => {
entry.getMetadata(resolve, reject);
});
}
然后你可以在循环中使用它并等待所有元数据,之后你可以按它对数组进行排序:
readEntries().then(entries =>
Promise.all(entries.map(entry =>
getMetadataPromise(entry).then(metadata => {
entry.metadata = metadata;
return entry;
})
))
).then(entries =>
entries.sort((a, b) => a.metadata.num - b.metadata.num) // or whatever
).then(sortedEntries => {
console.log(JSON.stringify(sortedEntries));
}, console.error);