在我的 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
在承诺和事件回调之前放置声明async
,readable
它仍然无法正常工作。
目前,“finish”这个词首先出现,表示解析结束。然后,1秒后,一次显示9条控制台日志
我希望记录号的输出每 1 秒出现一次,然后在最后控制台日志“完成”。