每周npm模块源码解读:mz
2018-12-27
字数统计:1k 字
阅读时长 ≈ 1 分钟
周2018.12.24 ~ 2018.12.30
前言
模块名:mz
github: https://github.com/normalize/mz
描述:将node.js的某些模块promisify化
适合人群:至少看过一遍源码
正文
现在的node最新稳定版本10.15.0,已经提供了把node模块promisify的函数了。
将 fs
, dns
, zlib
, crypto
, readline
, child_process
这些模块的方法promisify化。
主要是借助 thenify-all
和 any-promise
的帮助。
有两点需要注意的:
一个是模块 fs
,重写了 fs.exits
。但该方法已经废弃了。该方法实则使用是调用 fs.stat
。
另外一个是模块 readline
,重写了 readline.Interface
。兼容以前的版本?覆盖 question
,在这边使用了 promise
。
结语
在那个年代,把常用的node模块promisfy还是很有用的。