【发布时间】:2015-09-21 18:19:42
【问题描述】:
运行以下代码以下载和解压缩文件。当我尝试使用一个时,它按预期工作,但是当我同时执行多个时,我收到以下错误:
错误:Zlib._handle.onerror 中的标头检查不正确
var downloadUnzipFile = function (mID) {
try {
// Read File
console.log("Started download/unzip of merchant: " + mID + " @ " + new Date().format('H:i:s').toString());
request(linkConst(mID))
// Un-Gzip
.pipe(zlib.createGunzip())
// Write File
.pipe(fs.createWriteStream(fileName(mID)))
.on('error', function (err) {
console.error(err);
})
.on('finish', function() {
console.log("CSV created: " + fileName(mID));
console.log("Completed merchant: " + mID + " @ " + new Date().format('H:i:s').toString());
//console.log("Parsing CSV...");
//csvReader(fileName);
});
} catch (e) {
console.error(e);
}
}
module.exports = function(sMerchants) {
var oMerchants = JSON.parse(JSON.stringify(sMerchants));
oMerchants.forEach(function eachMerchant(merchant) {
downloadUnzipFile(merchant.merchant_aw_id);
})
};
有什么想法吗? 谢谢
编辑:
为了澄清,我想遍历数组(商家)中的每个项目(商家)并下载文件+解压缩。我目前这样做的方式意味着这种下载/压缩同时发生(我认为这可能导致错误)。当我删除 foreach 循环并尝试下载/压缩一个商家时,代码有效。
【问题讨论】:
-
"One", "multiple" - 你的意思是,一次一个文件而不是顺序的一些文件?
标签: javascript node.js asynchronous foreach