Node.js 里使用 Promise 的小技巧

Node.js 8 的时候,引入了 util.promisify() 方法,可以把 node-like 的回调函数改造成返回 Promise 实例的方法,我当时还写了篇博文《Node.js 8 中的 util.promisify》小记。

所以我现在写 Node.js 基本都是这种风格:

const fs = require('fs');
const {promisify} = require('util');

const readFile = promisify(fs.readFile);
const writeFile = promisify(fs.writeFile);

刚才在推上看到两位大佬聊起这个话题,发现可以这么搞:

去查了一下 Node.js 的文档,发现这是 v10 新增的 API,升级之后即可使用。

我比较喜欢这么做:

const {promises: {readFile, writeFile}} = require('fs');

(async () => {
  let content = await readFile('1.txt', 'utf8');
  content = doSthToContent(content);
  await writeFile('2.txt', content, 'utf8');
  console.log('ok');
})();

如果您觉得文章内容对您有用,不妨支持我创作更多有价值的分享:


已发布

分类

来自

评论

《“Node.js 里使用 Promise 的小技巧”》 有 1 条评论

  1. […] 这道题比前面复杂不少。首先不是任何语言都能完成了,还要求候选人熟悉 Node.js 相关的 API——我觉得中级前端一点 Node.js 不会实在说不过去。涉及到文件读取,势必包含异步操作,可以考察候选人是用回调(接下来就可以让他改造成 Promise),还是 Promise,还是 async/await。以及,Node.js 12 直接提供 Promise 风格的接口,可以简介考察候选人是否关注行业动态。 […]

欢迎吐槽,共同进步

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据