我有一个简单的情况,https.get
将其响应流传输到使用fs.createWriteStream
创建的文件流中,如下所示:
var file = fs.createWriteStream('some-file');
var downloadComplete = function() {
// check file size with fs.stat
};
https.get(options, function(response) {
file.on('finish', downloadComplete);
response.pipe(file);
});
几乎所有时间都可以正常工作,downloadComplete
中确定的文件大小是预期的。然而,它经常变得有点太小,几乎就像底层的file
流没有写入磁盘,即使它已经引发了finish
事件。
有没有人知道这里发生了什么,或者有什么特别的方法可以让finish
被调用的延迟和写入磁盘的基础数据更加安全?