管道流到变量!?或者 ....?
Piping stream to a variable!? or ....?
将流传输到变量的选项有哪些?基于此documentation可写流的例子包括:
- HTTP 请求,在客户端
- http 响应,在服务器 fs 上写入
- streams zlib 流
- 加密流
- TCP 套接字
- 子进程标准输入
- process.stdout、process.stderr
这是否意味着我不能通过管道将流传输到变量来处理它?事实上,我不想将流保存在我的磁盘上,那么通过管道传输所有流并使用该数据的最佳方法是什么?
谢谢,如果您需要更多说明,请告诉我!
您可能可以将流传输到变量,但是 pipe
通常用于将流传输到可以利用流的其他方法,因为 pipe
将所有数据从一个可读流,并将其写入提供的目标,自动管理流,以便目标不会被快速可读流淹没。
例如,通过管道将流传输到文件
someReadableStream.pipe(fs.createWriteStream("result.json"));
如果您只想要变量中的数据,那么有一些事件可能更容易使用,例如 on('data')
var readable = getReadableStreamSomehow(),
result = '';
readable.on('data', function(chunk) {
result += chunk;
});
readable.on('end', function () {
// do something with "result"
});
将流传输到变量的选项有哪些?基于此documentation可写流的例子包括:
- HTTP 请求,在客户端
- http 响应,在服务器 fs 上写入
- streams zlib 流
- 加密流
- TCP 套接字
- 子进程标准输入
- process.stdout、process.stderr
这是否意味着我不能通过管道将流传输到变量来处理它?事实上,我不想将流保存在我的磁盘上,那么通过管道传输所有流并使用该数据的最佳方法是什么?
谢谢,如果您需要更多说明,请告诉我!
您可能可以将流传输到变量,但是 pipe
通常用于将流传输到可以利用流的其他方法,因为 pipe
将所有数据从一个可读流,并将其写入提供的目标,自动管理流,以便目标不会被快速可读流淹没。
例如,通过管道将流传输到文件
someReadableStream.pipe(fs.createWriteStream("result.json"));
如果您只想要变量中的数据,那么有一些事件可能更容易使用,例如 on('data')
var readable = getReadableStreamSomehow(),
result = '';
readable.on('data', function(chunk) {
result += chunk;
});
readable.on('end', function () {
// do something with "result"
});