为什么pipe可以执行多次

新手上路,请多包涵

clipboard.png
当执行r.pipe(process.stdout),开始输出
问题一:为什么管道接通后才开始输出
问题二:为什么可以打印a-z,明明只调用了一次r.pipe(process.stdout),但是执行了多次
直到 c>z

阅读 1.7k
1 个回答
  1. 你不把水龙头打开怎么会出水。
  2. 水龙头只要“一次”打开就会不断出水

其实本质是我们需要一个这样的管道,所以我们这样去设计管道,所以管道的特性就成了这样子。那么什么样的使用场景需要使用这种管道呢,一个典型的场景就是任务队列。

假设这里有一个任务队列 R ,在没有指派任何的 Worker 去执行任务之前,即便我们往任务队列投放再多的任务,也没有任何任务会被执行,因为没有 Worker,这里问题一的答案。

然后我们将任务队列 R 与一个 Worker 绑定,那么只要是 R 队列上的任务,都会指派到这个 Worker 去执行,这是一个绑定的过程,不是执行,你可以理解成类似于 addEventListener。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题