Skip to content

Files

Latest commit

 

History

History
33 lines (26 loc) · 768 Bytes

avoid-new.md

File metadata and controls

33 lines (26 loc) · 768 Bytes

Pattern: new Promise constructor

Issue: -

Description

Using new Promise() constructor is less idiomatic in modern JavaScript. Prefer async/await syntax for better readability and error handling, unless explicitly needed for converting callback-based APIs to Promises.

Examples

Example of incorrect code:

function getData() {
  return new Promise((resolve, reject) => {
    doSomething((err, result) => {
      if (err) reject(err);
      else resolve(result);
    });
  });
}

Example of correct code:

async function getData() {
  const result = await doSomething();
  return result;
}

// When necessary for callback APIs
const util = require('util');
const getData = util.promisify(callbackBasedFunction);