У меня есть следующий код, который загружает файл с FTP-сервера.Пакет ftp создает поток чтения, и я направляю его в поток записи.
ftp.connect(ftpConnObj)
.then(function (data) {
logging.log('Connected to FTP', clientId, jobId);
return ftp.get('files/student.txt');
}).then(function (stream) {
logging.log('Downloading student file', clientId, jobId);
return new Promise(function (resolve, reject) {
/*stream.once('close', function() {
console.log("close event called");
resolve();
});*/
stream.on('readable', function() {
console.log('readable');
});
stream.on('data', function(data) {
console.log(data);
});
stream.on('end', function() {
console.log('end');
});
stream.on('close', function() {
console.log('close');
});
stream.on('error', function(err) {
console.log(err);
});
var writeStream = fs.createWriteStream(dir + '/student.txt');
stream.pipe(writeStream);
writeStream.on('close', function() {
console.log('closed');
resolve();
});
});
Этот код отлично работает при использовании узла 8.15.1.Когда я обновился до узла 10.15.3, он больше не работает.Событие для чтения в потоке чтения будет обработано один раз, но после этого никакие другие события не будут вызваны, поэтому код просто зависает.
Есть ли что-то, что изменилось в узле 10, что требует, чтобы это было сделано по-другому?