Reports unnecessary Promise.resolve() or Promise.reject() in async contexts.
✅ This rule is included in the ts logical and logicalStrict presets.
Wrapping a return value in Promise.resolve() in an async function or a promise callback is unnecessary because return values are already wrapped in a Promise.
Similarly, returning an error wrapped in Promise.reject() is equivalent to throwing the error.
This applies to yield expressions in async generators as well.
AEasy5<3 sp ansty="le--0:#C792EA;--1:#8844">AEfuncti3 sp>5<3 sp ansty="le--0:#82AAFF;--1:#3B61">B0getVal3 sp>11<()sp ansty="le--0:#D6DEEB;--1:#403F">53()sp>< {d ivclassNa="meec-li">nt< sp ansty="le--0:#C792EA;--1:#8844">AEretu sp>5<3 sp ansty="le--0:#C5E478;--1:#3B61">B0Promi3 sp>AB0resol5<3(sp ansty="le--0:#F78C6C;--1:#AA09">823(sp><42sp ansty="le--0:#D6DEEB;--1:#403F">5342sp> {d><);d ivclassNa="meec-li">5);d><3}d ivclassNa="meco"><}d>}d>3}d>AEasy5<3 sp ansty="le--0:#C792EA;--1:#8844">AEfuncti3 sp>5<3 sp ansty="le--0:#82AAFF;--1:#3B61">B0failWithErr3 sp>11<()sp ansty="le--0:#D6DEEB;--1:#403F">53()sp>< {d ivclassNa="meec-li">nt< sp ansty="le--0:#C792EA;--1:#8844">AEretu sp>5<3 sp ansty="le--0:#C5E478;--1:#3B61">B0Promi3 sp>AB0reje5<3(sp ansty="le--0:#7FDBCA;--1:#096E">72n3(sp>5<3 sp ansty="le--0:#82AAFF;--1:#3B61">B0Err3 sp>5<3(sp ansty="le--0:#D9F5DD;--1:#1111">13(sp><1"sp ansty="le--0:#ECC48D;--1:#984E">4Dfail1"sp>1<1"sp ansty="le--0:#D6DEEB;--1:#403F">53)1"sp> {d><);d ivclassNa="meec-li">5);d><3}d ivclassNa="meco"><}d>}d>3}d>53promiAB0th5<3(sp ansty="le--0:#D9F5DD;--1:#1111">113(sp><()sp ansty="le--0:#D6DEEB;--1:#403F">5()sp><3 sp ansty="le--0:#C792EA;--1:#8844">AE3 sp><=>sp ansty="le--0:#D6DEEB;--1:#403F">5=>sp><3 sp ansty="le--0:#C5E478;--1:#3B61">B0Promi3 sp>AB0resol5<3(sp ansty="le--0:#F78C6C;--1:#AA09">823(sp><42sp ansty="le--0:#D6DEEB;--1:#403F">53)42sp><);d ivclassNa="meco"> Promise.resolve(42)"><);d>);d>);d>53promiAB0cat5<3(sp ansty="le--0:#D9F5DD;--1:#1111">113(sp><()sp ansty="le--0:#D6DEEB;--1:#403F">5()sp><3 sp ansty="le--0:#C792EA;--1:#8844">AE3 sp><=>sp ansty="le--0:#D6DEEB;--1:#403F">5=>sp><3 sp ansty="le--0:#C5E478;--1:#3B61">B0Promi3 sp>AB0reje5<3(sp ansty="le--0:#7FDBCA;--1:#096E">72n3(sp>5<3 sp ansty="le--0:#82AAFF;--1:#3B61">B0Err3 sp>5<3(sp ansty="le--0:#D9F5DD;--1:#1111">13(sp><1"sp ansty="le--0:#ECC48D;--1:#984E">4Derr1"sp>1<1"sp ansty="le--0:#D6DEEB;--1:#403F">53))1"sp><);d ivclassNa="meco"> Promise.reject(new Error("error"))"><);d>);d>);d> 44AEa344AEfunc361B0getV11<11() spans="tyle--0:#D6DEEB;--1:#40">3F11()><53 {divclass="Nameec-">de44AEre309<8242 spans="tyle--0:#D6DEEB;--1:#40">38242>53 >3<2;>2;><}di vdivclass="Nameexpressive-">44AEa344AEfunc361B0failWithE11<11() spans="tyle--0:#D6DEEB;--1:#40">3F11()><53 {divclass="Nameec-">de44AEt36E7<2new spans="tyle--0:#D6DEEB;--1:#40">32new>61B0E31<111" spans="tyle--0:#ECC48D;--1:#98">4E4Dfa111">1<111" spans="tyle--0:#D6DEEB;--1:#40">3F111">53 ><53) ;divclass="Nameec-">353)><);>);>}di><}di vdivclass="Nameexpressive-">3F53pro4<4AE. spans="tyle--0:#82AAFF;--1:#3B">61B04AE.>311<11() spans="tyle--0:#D6DEEB;--1:#40">311()>44 spans="tyle--0:#D6DEEB;--1:#40">3>09<8242 spans="tyle--0:#D6DEEB;--1:#40">3F8242><53) ;divclass="Name"> "><42)>42)>53)>}di><;di vdivclass="Nameexpressive-">3F53pro4<4AE. spans="tyle--0:#82AAFF;--1:#3B">61B0c4AE.>311<11() spans="tyle--0:#D6DEEB;--1:#40">311()>44 spans="tyle--0:#D6DEEB;--1:#40">3F><53 {divclass="Nameec-">de44AEt36E7<2new spans="tyle--0:#D6DEEB;--1:#40">32new>61B0E31<111" spans="tyle--0:#ECC48D;--1:#98">4E4De111">1<111" spans="tyle--0:#D6DEEB;--1:#40">3F111">53 ><53) ;divclass="Nameec-">3F553)><3}) ;divclass="Name"> { throw new Error("error");"><})>})>3})>;di><;di vdivclass="Nameexpressive-">44AEfunc361B0regularFunc11<11() spans="tyle--0:#D6DEEB;--1:#40">3F11()><53 {divclass="Nameec-">de44AEre361B0Pro4<4AE. spans="tyle--0:#82AAFF;--1:#3B">61B0res4AE.>309<8242 spans="tyle--0:#D6DEEB;--1:#40">3F8242>53 ><53) ;divclass="Nameec-">353)><);>);>;di>
This rule is not configurable.
If you have a codebase that intentionally uses Promise.resolve() and Promise.reject() for consistency across async and non-async functions, you may want to disable this rule.