Vous pouvez envelopper cela dans une fonction qui renvoie une promesse qui est résolu lorsque le flux « proche » événement est émis (comme indiqué dans les unzip
docs), et dans le la résolution de la promesse retourne une liste finale des fichiers dans le fichier zip triés par quelque que vous voulez les trier. Un exemple pourrait être:
function getFileList(savePathZip) {
return new Promise((resolve, reject) => {
var list = []
fs.createReadStream(savePathZip)
.pipe(unzip.Parse())
.on('entry', entry => list.push(entry.path))
.on('error', reject)
.on('close',() => resolve(list))
})
}
Ensuite, vous pouvez appeler la fonction, qui retourne une liste complète des fichiers dans un tableau et les trier comme bon vous semble:
getFileList(zipFilePath).then(fileArray => {
fileArray = fileArray.sort((f1, f2) => {
/* sort the list of files however you like */
})
})