最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

管道可读流到2个可写流

运维笔记admin8浏览0评论

管道可读流到2个可写流

管道可读流到2个可写流

对于一个直截了当的问题,我找不到简明的答案。希望这将是它。

我只想这样做:

let myReadableStream = ...some readable stream...;
let myFileStream = ...some writable file stream...;

myReadableStream.pipe(process.stdout).pipe(myFileStream);

这不起作用,因为可写流不能通过管道传输。

这种作品:

let myReadableStream = ...some readable stream...;
let myFileStream = ...some writable file stream...;

myReadableStream.pipe(process.stdout);
myReadableStream.pipe(myFileStream);

但如果可读管道在达到第二个myReadableStream.pipe(myFileStream)之前快速填满数据,这不会导致问题吗?

用管道做这个规范的方法是什么?

回答如下:

据我了解node.js流,他们不会在调用pipe()函数时立即开始流动,工作被推迟到你将控制返回到event loop。所以不,两个pipe()电话之间什么都不会发生。

我知道这对于来自基于多个应用程序线程的环境的人(像我一样)似乎是违反直觉的。但是多线程不是并发的JavaScript模型。异步JavaScript执行基于一个更易于管理的EventLoop模型,其中异步回调处理仅发生其他应用程序代码空闲。最重要的是,不需要锁,这有时很难在线程执行模型中得到正确的结果。

与本文相关的文章

发布评论

评论列表(0)

  1. 暂无评论