子进程
2018-08-30 本文已影响0人
我_巨可爱
相关链接
事件
- 经典回掉形式
- 函数最后一个参数是
cb
-
error
是cb
第一个参数
-
Promise
形式 async/await
-
try/catch
的使用 - 支持带
Promise
实现的异步,比如setTimeout
是不支持的
- 事件的同步和异步其实是结合上述形式实现的
- 事件按注册顺序触发,有一个
prependListener
方法,记得removeListener
方法
流
nodejs_stream.pngnodejs 中两种流的分类
readableSrc.pipe(writableDesc)
- 使用流推荐的两种方式
-
pipe
,如果流是duplex
或者transform
则还支持链式 - 事件
- 流的事件和方法
-
readableSrc
的data
和end
, 方法有read
,unshift
,resume
-
writableDesc
的drain
和finish
, 方法有write
-
readable stream
有两种模式
paused
flowing
- 实现流,它们都有一些需要定义的方法
- 实现
readable
流,read
- 实现
writable
流,write
- 实现
duplex
流,read
和write
- 实现
transform
流,transform
-
zlib
实现压缩 -
crypto
实现加密 - 单词
cipher
,encrypt
-
spawn
- 在
Linux
和macOS
上可以直接运行命令,在windows
上需要设置shell: true
,编写跨平台spawn - 与
exec
差别
-
exec
缓存命令的输出 -
spawn
使用流的方式
- 子进程独立于主进程
fork
- 通信频道建立于子频道,主进程和子进程通过事件机制通信,将大量耗时操作移动到
fork
中,可避免主进程阻塞