fs.createReadStream并不总是命中close事件

时间:2017-04-18 23:20:55

标签: node.js fs

我在Node JS脚本中有以下代码

fs.createReadStream(zipFile).pipe(unzip.Extract({ path: outputPath }))
.on('close', function () {

    fs.exists(zipFile, function (exists) {
        if (exists) {
            fs.unlink(zipFile);
        }
    });

    resolve('Files unziped');
})
.on('error', function (res) {

    reject('Error encountered when unziping files');
});

但是,并不总是点击 .on(' close' ...)事件。我已经多次测试过完全相同的文件,只有20%的时间将其解压缩。其余的时间它什么也没做......

我做错了吗?

修改 原来,上面的代码完全没问题。这个问题发生在我的API调用上。当我调用API时,HTTP响应是通过几个块提供的。有时块很小,可​​以立即发送全身。这是上述代码工作正常的情况。当有多个组块构成完整的主体并且在调用代码解压缩主体之前我没有组成完整的主体时,代码失败了。

0 个答案:

没有答案