NodeJS中的流无法触发end事件
我在使用scissors这个包时,读入一个PDF的stream,然后将这个stream生成TXT stream,发现这个stream是老式的stream,然后使用 var Readable=require(‘stream’).Readable(); var srcStream=new Readable().wrap(stream);将这个stream包装成readable后还是在读取内容完毕后不会触发end事件,不知道为什么,求大神支招,非常感激! 大致的代码如下:
4 回复
刚测试了一下,表示会触发end事件,代码如下:
'use strict';
const Readable = require('stream').Readable;
const fs = require('fs');
let srcStream = new Readable().wrap(fs.createReadStream('test.html'));
let chunks = [];
srcStream.on('data', data => chunks.push(data));
srcStream.on('end', _ => console.log(Buffer.concat(chunks).toString('utf8')));
您好!很感谢您能帮我解答问题。但是还是没能解决问题,因为我要读取一个pdf文件,pdf是二进制的,所以要经过转换才能变成文本文件,所以使用了scissors这个包来包装pdf的流,生成一个文本文件的流,这个流是老式流,所以用readable.wrap()包装后形成readable的流,但还是不能触发end事件,不知道为什么
用 pipe 呢?
是不是 srcPath 还没写完… 这样试试
file.on('finish', function(){
saveFile // blabla
})