no-async-promise-executor
注意: 此规则是
recommended
规则集的一部分。在
deno.json
中启用完整规则集{ "lint": { "tags": ["recommended"] } }
使用 Deno CLI 启用完整规则集
deno lint --tags=recommended
要求不使用异步 promise 执行器函数。
Promise 构造函数接受一个执行器函数作为参数,该函数带有 resolve
和 reject
参数,可用于控制所创建 Promise 的状态。此函数允许是异步的,但这通常不是一个好主意,原因如下:
- 如果异步执行器函数抛出错误,则该错误将丢失,并且不会导致新构建的 Promise 拒绝。这可能会使调试和处理某些错误变得困难。
- 如果异步 Promise 执行器函数正在使用 await,那么这通常表明实际上没有必要使用 new Promise 构造函数,并且可以重构代码以避免使用 promise,或者可以缩小 new Promise 构造函数的范围,提取异步代码并将其更改为同步。
无效
new Promise(async function (resolve, reject) {});
new Promise(async (resolve, reject) => {});
有效
new Promise(function (resolve, reject) {});
new Promise((resolve, reject) => {});