相关链接
事件
- 经典回掉形式
- 函数最后一个参数是
cb -
error是cb第一个参数
-
Promise形式 async/await
-
try/catch的使用 - 支持带
Promise实现的异步,比如setTimeout是不支持的
- 事件的同步和异步其实是结合上述形式实现的
- 事件按注册顺序触发,有一个
prependListener方法,记得removeListener方法
流
nodejs 中两种流的分类

nodejs_stream.png
readableSrc.pipe(writableDesc)- 使用流推荐的两种方式
-
pipe,如果流是duplex或者transform则还支持链式 - 事件
- 流的事件和方法
-
readableSrc的data和end, 方法有read,unshift,resume -
writableDesc的drain和finish, 方法有write
-
readable stream有两种模式
pausedflowing
- 实现流,它们都有一些需要定义的方法
- 实现
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中,可避免主进程阻塞