Pattern: new Promise
constructor
Issue: -
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.
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);