Async Promise executor function
The executor passed to `new Promise` is declared `async`.
#Metadata
#Why it matters
Async executors defer errors and can swallow rejections; prefer a synchronous executor that calls `resolve`/`reject`.
#Remediation
Remove `async` from the executor and use `resolve`/`reject`, or wrap the async work without making the executor itself async.
#Repository path
The generated metadata points to critiq-rules/libs/rules/catalog/rules/typescript/ts.correctness.async-promise-executor.rule.yaml.