no-promise-executor-return

禁止从 Promise 执行器函数返回值

new Promise 构造函数接受一个参数,称为执行器。

const myPromise = new Promise(function executor(resolve, reject) {
    readFile('foo.txt', function(err, result) {
        if (err) {
            reject(err);
        } else {
            resolve(result);
        }
    });
});

执行器函数通常会启动一些异步操作。完成后,执行程序应调用 resolve 并返回结果,如果发生错误则调用 reject

执行器的返回值被忽略。从 executor 函数返回一个值是一个可能的错误,因为返回的值不能被使用并且它不会以任何方式影响 Promise。

规则详情

此规则不允许从 Promise 执行程序函数返回值。

QFykoFBJVHvU3zU7NwOI4NuHJdBPlBPsP94eZtAScS2hY0vNKcGxuNqLmTqo2fcBEV916iz6HT3C2U96SEqJIS9qEGx+YbR6H94hXTCR322pPkgj2ZDN1m6mBjD2fatM

zgtA9qULNJCisb93HMYHc8Ggw8n2GodjQYP9t+7ONpfp17nMeKkkY1jjCCLLF/nt

/*eslint no-promise-executor-return: "error"*/

new Promise((resolve, reject) => {
    if (someCondition) {
        return defaultResult;
    }
    getSomething((err, result) => {
        if (err) {
            reject(err);
        } else {
            resolve(result);
        }
    });
});

new Promise((resolve, reject) => getSomething((err, data) => {
    if (err) {
        reject(err);
    } else {
        resolve(data);
    }
}));

new Promise(() => {
    return 1;
});

j5a8iL9dfoZeFlnyStrti8akq1/5Rj4LSyBa2oD3zp4MkE6RNRzH0BEeMEEkOOkl

/*eslint no-promise-executor-return: "error"*/

new Promise((resolve, reject) => {
    if (someCondition) {
        resolve(defaultResult);
        return;
    }
    getSomething((err, result) => {
        if (err) {
            reject(err);
        } else {
            resolve(result);
        }
    });
});

new Promise((resolve, reject) => {
    getSomething((err, data) => {
        if (err) {
            reject(err);
        } else {
            resolve(data);
        }
    });
});

Promise.resolve(1);