升级到nodejs 10后流不起作用

时间:2019-03-20 01:24:16

标签: node.js fs

我有以下代码可从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中是否发生了一些更改,要求以不同的方式进行?

0 个答案:

没有答案