【发布时间】:2021-12-27 15:30:13
【问题描述】:
我正在开发一个 React.js 应用程序,我有一个从 j=1 到 j=2000 的循环,我想在 j 时下载一个 zip 文件=1 或 j=2000。
问题是循环结束后两个zip文件同时下载。换句话说,两个 zip 的下载在 j = 2000 时开始。
我尝试使用 async 和 await 使 zip 生成同步,但它对我不起作用。
const generateCollection = async ()=>{
for(var j = 1; j <= 2000; j++){
let zip = new JSZip();
let metadata = zip.folder("metadata");
const obj = {name: "Simple name", age: "Simple age"}
metadata.file(`1.json`, JSON.stringify(obj, null, 4))
console.log("Start Downloading: ", j)
if(j===1 || j===2000){
await zip.generateAsync({type:"blob"})
.then(content=>{
setIsLoading(false)
FileSaver.saveAs(content, `collection_${j}.zip`);
console.log("Saved...... ", j)
})
}
}
}
我将不胜感激任何帮助或建议!
【问题讨论】:
标签: javascript reactjs async-await es6-promise jszip