promise/param-names
Require the parameters of a new Promise() executor to be named resolve and reject
The function you pass to new Promise() gets its two parameters by position, no matter what you call them. If you write them in the wrong order, reject(value) fulfills the promise and resolve(error) rejects it.
The first parameter must be resolve or _resolve, and the second must be reject or _reject. You can leave out parameters you don't use.
Configure#
Off by default. To turn it on:
bunfig.toml
[lint.rules]
"promise/param-names" = "error" # or "warn"Every option, set to its default:
bunfig.toml
[lint.rules]
"promise/param-names" = ["error", {
resolvePattern = "^_?resolve$",
rejectPattern = "^_?reject$",
}]Examples#
example.js2 problems
new Promise((rejectPromise constructor parameters must be named to match ^_?resolve$, resolvePromise constructor parameters must be named to match ^_?reject$) => {
setTimeout(resolve, 1000); // rejects the promise
});example.js1 problem
new Promise(donePromise constructor parameters must be named to match ^_?resolve$ => {
setTimeout(done, 1000);
});example.jsNo problems
new Promise(resolve => {
setTimeout(resolve, 1000);
});
new Promise((_resolve, reject) => {
setTimeout(reject, 1000);
});Options#
| Option | Default | What it does |
|---|---|---|
resolvePattern | "^_?resolve$" | A regular expression that the first parameter's name must match. |
rejectPattern | "^_?reject$" | A regular expression that the second parameter's name must match. |
example.jswith
{ "resolvePattern": "^(resolve|done)$", "rejectPattern": "^(reject|fail)$" }No problemsnew Promise((done, fail) => {
socket.once("open", done);
socket.once("error", fail);
});