使用async/await定义报错:Promise executor functions should not be async.eslintno-async-promise-executor?
现有这样的定义async/await的场景:
const getOSQueryBuilder = async (): Promise<Repository<ConfigEntities>> => {
return Database.getRepository(ConfigEntities)
}
class OSService {
// 根据ID查询操作
static async getConfig(id: string): Promise<unknown> {
return new Promise(async (resolve) => { // 这里的async会弹窗报错
const osQueryBuilder = await getOSQueryBuilder()
const data = (await osQueryBuilder).findOne({
where: {
id
}
})
resolve(data)
})
}
}
报错信息:
Promise executor functions should not be async.eslintno-async-promise-executor
请问这里应该如何整改呢?
回复
1个回答

test
2024-09-07
你把异步抽成一个函数 调用就行了 这样 Promise executor 本身就不是异步函数了
const getOSQueryBuilder = async (): Promise<Repository<ConfigEntities>> => {
return Database.getRepository(ConfigEntities)
}
class OSService {
// 根据ID查询操作
static async getConfig(id: string): Promise<unknown> {
return new Promise((resolve) => { // 这里的async会弹窗报错
async function inquire() {
const osQueryBuilder = await getOSQueryBuilder()
const data = (await osQueryBuilder()).findOne({
where: {
id
}
})
resolve(data)
}
inquire();
})
}
}
回复

适合作为回答的
- 经过验证的有效解决办法
- 自己的经验指引,对解决问题有帮助
- 遵循 Markdown 语法排版,代码语义正确
不该作为回答的
- 询问内容细节或回复楼层
- 与题目无关的内容
- “赞”“顶”“同问”“看手册”“解决了没”等毫无意义的内容