gpt4 book ai didi

javascript - node.js:如何在尝试解析内容之前等到 "unzip"完成

转载 作者:行者123 更新时间:2023-11-30 16:13:25 26 4
gpt4 key购买 nike

创建一个 node.js 来自动下载一个 zip 文件,其中包含一个包含 5000 个用户 ID 和用户名 (CSV) 列表的文本文件。一个示例文本文件是:
12345,JSmith
728422,YPatel

每次我运行这个,我都会得到不同的结果。我认为可能的原因是我试图在解压缩完成保存到磁盘之前解析解压缩的文件。

有没有办法异步解析解压缩的数据,或者至少等到解压缩完成,然后再尝试解析提取的文件? (我也很乐意从内存中完成整个过程,避免使用磁盘)

我是 node.js 的新手。

function downloadAndUnzip(URL, doWhenFinished){
require('request')
.get(URL)
.on('error', function(error) {
console.log(error)
})
.on('end', doWhenFinished)
.pipe(require('unzip').Extract({path:'./'}))
}

var parseFile = function(){
var fs = require('fs')
var array =

fs.readFileSync('usernames.txt').toString().split("\n\r");
for (i in array) {
user = array[i].split(",");
console.log("UserID: " + user[0] + " Username: " + user[1]);
}
}
}

DownloadAndUnzip(URL, parseFile())

最佳答案

来自文档:

Extract emits the 'close' event once the zip's contents have been fully extracted to disk.

您需要监听“关闭”事件。

var unzip = require('unzip');
var unzipExtractor = unzip.Extract({ path: './'});

// listen for close event and perform parse
unzipExtractor.on('close', some_function_to_parse());

关于javascript - node.js:如何在尝试解析内容之前等到 "unzip"完成,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35886334/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com