js call back for promise 2026-09-01

By Xah Lee. Date: .
work in progress

7. Converting Callbacks to Promises

Many older APIs use callbacks. You can wrap them:

function readFilePromise(path) {
  return new Promise((resolve, reject) => {
    fs.readFile(path, "utf8", (err, data) => {
      if (err) reject(err);
      else resolve(data);
    });
  });
}

// Usage
const content = await readFilePromise("./file.txt");

Node.js also has util.promisify for this:

const { promisify } = require("util");
const readFile = promisify(fs.readFile);
work in progress

js call back for promise

Before Promises, we used callbacks. This led to "callback hell":

getData(function(result) {
  process(result, function(processed) {
    save(processed, function() {
      console.log("Done");
    });
  });
});

Converting Callbacks to Promises

// Old callback style
function oldAPI(callback) {
  setTimeout(() => callback(null, "data"), 1000);
}

// Modern
const promiseAPI = () =>
  new Promise((resolve, reject) => {
    oldAPI((err, data) => {
      if (err) reject(err);
      else resolve(data);
    });
  });