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