问题描述
在我的 Vue.js 应用程序中,我必须解析 CSV 文件并将每一行上传到后端。 我想异步执行,以便在上一条记录上传后读取下一条记录(承诺已解决)。
import parse from 'csv-parse';
importCsv() {
const parser = parse()
let index = 0;
parser.on('readable',async () => {
let record = parser.read()
if(record) {
await new Promise((resolve) => setTimeout(resolve,1000))
index++
console.log("record nr ",index)
}
})
parser.on('error',(err) => {
console.log(err)
})
parser.on('end',() => {
console.log("finish")
})
parser.write(this.fileContent)
parser.end()
}
this.fileContent
是以字符串形式保存在我的组件中的文件内容。
即使我将 await
语句放在 promise 之前并将 async
放在 readable
事件回调之前,它仍然无法正常工作。
目前,'finish'这个词最先出现,表示解析结束。然后,1秒后,一次显示9个控制台日志
我希望每 1 秒出现一次带有记录号的输出,然后在最后控制台日志“完成”。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)