Promise executor cannot be an async function

This page is not yet available in Spanish. We are working on its translation.
If you have any questions or feedback about our current translation project, feel free to reach out to us!

Metadata

ID: javascript-best-practices/no-async-promise-executor

Language: JavaScript

Severity: Error

Category: Best Practices

Description

An async Promise executor won’t surface exceptions if it fails. If you are already awaiting results in the executor, the Promise itself might not be required; please review your implementation.

Non-Compliant Code Examples

new Promise(async function foo(resolve, reject) {})
new Promise(async (resolve, reject) => {})

Compliant Code Examples

new Promise((resolve, reject) => {})
new Promise((resolve, reject) => {}, async function unrelated() {})
new Foo(async (resolve, reject) => {})
https://static.datadoghq.com/static/images/logos/github_avatar.svg https://static.datadoghq.com/static/images/logos/vscode_avatar.svg jetbrains

Seamless integrations. Try Datadog Code Analysis