Promise 化回调式函数

232 阅读1分钟

Node.js 8 提供了新的工具函数:util.promisify,用于把形如 (err, value) => ... 的回调式函数转换为 Promise 版本。

基本使用 const util = require('util'); const fs = require('fs');

const stat = util.promisify(fs.stat);

stat('.').then((stats) => { // Do something with stats }).catch((error) => { // Handle the error. }); 复制代码 当然,也可以使用 Node 8 另一个新功能 async function 调用:

const util = require('util'); const fs = require('fs');

const stat = util.promisify(fs.stat);

async function callStat() { const stats = await stat('.'); console.log(This directory is owned by ${stats.uid}); } 复制代码 自定义函数的 Promise 版本 通过设置 util.promisify.custom symbol,可以自定义 util.promisify() 的返回值:http://click.aliyun.com/m/1000005498/