Skip to content

A promise wrapped in new Promise ​

Code longer than it needs to be: one of the ways AI coding agents bloat software, from lessloc's pattern catalog. lessloc catches it as simpler.

What makes a promise wrapped in new Promise a bad practice? ​

The standard that calls it a bad practice: Bluebird: the explicit-construction anti-pattern.

What does lessloc do about a promise wrapped in new Promise? ​

lessloc catches it as simpler.

  • simpler (tier 2): Brute-force code with a shorter idiom: == True, an if/else that returns the condition, an index loop that only reads xs[i], .filter(...).length > 0, a catch that only rethrows, a flag loop that is any(), a hand-built counter, an __init__ that @dataclass writes, a React Effect that only sets state. ruff and clippy add more.

Examples ​

Caught as simpler:

js
export function load(url) {
  return new Promise((resolve, reject) => {
    fetch(url).then(resolve).catch(reject);
  });
}

Written well:

js
export function load(url) {
  return fetch(url);
}

The other patterns in Code longer than it needs to be:

Released under the Apache-2.0 license. · llms.txt