eslint-community/eslint-plugin-promise

Rule to prevent no-op promise handlers

Open

#12 opened on Apr 12, 2016

 (3 comments) (0 reactions) (1 assignee)JavaScript (103 forks)auto 404
enhancementhelp wanted

Repository metrics

Stars
 (998 stars)
PR merge metrics
 (Avg merge 1d 2h) (12 merged PRs in 30d)

Description

See: eslint/eslint#5761

Rule to throw when the identify function is used as the success handler of a Promise or the "throw function" is used as the failure handler of a Promise.

// The identity function is the default success handler for a promise, it can be ommitted
something.then(function (value) {
  return value;
});

// and

// propagating the error is the default error handler fro a promise, it can be ommitted

something.then(null, function (err) {
  throw err;
});

// or

something.catch(function (err) {
  throw err;
});

It helps users to understand how promise values propagate.

Usually when people write .catch(err => { throw err; }) they intend to throw the error into the next tick to make sure it's reported, not to add a no-op to the end of their promise chain.

Contributor guide