-, *ngFor, filesFromZip .
this.filesFromZip = [];
zip.loadAsync(zipfileFromInput)
.then((zip)=> {
for (let file in zip.files) {
let fileInZip = zip.files[file];
zip.file(fileInZip.name)
.async("arraybuffer")
.then((content)=> {
let buffer = new Uint8Array(content);
let blob = new Blob([buffer.buffer]);
this.filesFromZip.push({
fileName: fileInZip.name,
blobURL: URL.createObjectURL(blob)
});
});
}
});
Promise.all(), Promise, :
javascript:
this.filesFromZip = Promise.all(
zip.loadAsync(zipfileFromInput)
.then((zip)=> {
let out=[];
for (let file in zip.files) {
let fileInZip = zip.files[file];
out.push(zip.file(fileInZip.name)
.async("arraybuffer")
.then((content)=> {
let buffer = new Uint8Array(content);
let blob = new Blob([buffer.buffer]);
this.filesFromZip.push({
fileName: fileInZip.name,
blobURL: URL.createObjectURL(blob)
});
}));
}
return out;
});
)
:
<md-card *ngFor="let file of filesFromZip|async">
<h3 md-line>{{file.fileName}}</h3>
<img src="{{file.blobURL}}">
</md-card>
, zip.file(fileInZip.name) null