NPM酷库,每天两分钟,了解一个流行NPM库。
昨天我们了解了增强版Promise库:q。q库实现了比ES2015标准更多的Promise方法,今天我们继续学习另一个功能强大的Promise工具库:bluebird。
bluebird
首先,和q库一样,bluebird也是一个增强版本的Promise库,可以直接require后替换Node.js内置Promise。
const Promise = require('bluebird');
Promise也提供了其他非常有用的工具,比如前天文章中将callback样式函数转换为Promise样式,可以直接使用bluebird实现:
const readFile = Promise.promisify(fs.readFile);
也可以直接将整个Node.js模块转换为Promise样式接口:
const fs = Promise.promisifyAll(require("fs"));
// ...
await fs.readFileAsync("myfile.js", "utf8");
此外经常用到的bluebird工具有:
- Promise.props
- Promise.any
- Promise.some
- Promise.map
- Promise.reduce
- Promise.filter
- Promise.each
- Promise.mapSeries
- Promise.race