Новичок для узла здесь. Я пытаюсь загрузить .tar.xz
файл и распаковать его в директорию с помощью кода, показанного ниже:Почему в этом коде Node.js не происходит «финишное» событие?
var request = require('request');
var tar = require('tar');
var xz = require('xz');
function downloadRaw(url, callback)
{
return request({
encoding: null,
url: url
}, callback);
}
function extractToDirectory(url, directory, callback)
{
return downloadRaw(url)
.pipe(new xz.Decompressor())
.pipe(tar.Extract(directory))
.on('finish', callback);
}
По какой-то причине не кажется 'finish'
событие на поток смолы будет стрелять, даже после того, как он закончит извлечение содержимого архива. tar - это библиотека, которая поддерживается самими часами нпм, поэтому я предполагаю, что здесь я совершаю какую-то ошибку. Во всяком случае, почему это происходит и что я могу сделать, чтобы исправить это?