[Javascript] Convert a Callback-Based JavaScript Function to a Promise-Based One

Sometimes, you might want to convert a JavaScript function that accepts a callback to one that returns a Promiseobject. This lesson shows how to manually wrap a promise-based API around the fs.readFile() function. It also explains how to use the util.promisify() method that is built into the Node.js standard library.

 
复制代码
const fs = require('fs')

function readFile(path, encoding) {
  return new Promise((resolve, reject) => {
    fs.readFile(path, encoding, (error, contents) => {
      if (error) {
        reject(error)
      } else {
        resolve(contents)
      }
    })
  })
}

readFile(__filename, "utf8")
.then((contents) => {
  console.log(contents)
}, error => {
  console.error(error)
})
复制代码

 

In nodejs we can use util function:

复制代码
const fs = require("fs");
const util = require("util");

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

readFile(__filename, "utf8").then(
  contents => {
    console.log(contents);
  },
  error => {
    console.error(error);
  }
);
复制代码

 

posted @   Zhentiw  阅读(176)  评论(0编辑  收藏  举报
编辑推荐:
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具
历史上的今天:
2017-12-07 [React] Stop Memory Leaks with componentWillUnmount Lifecycle Method in React
2017-12-07 [React] Validate Custom React Component Props with PropTypes
2017-12-07 [Python] Wikipedia Crawler
2017-12-07 [Python] Python list slice syntax fun
2017-12-07 [Python] Finding the most common elements in an iterable
2017-12-07 [Python] Generates permutations
点击右上角即可分享
微信分享提示