NodeJS:Eslint关于promise的错误



我在eslint:中有两个错误

error Promise在函数参数中返回,其中void返回预期错误Promise执行器函数不应为异步

它们来自以下代码:

const promiseFeature = new Promise(async (resolve) => {
let objectProfile = await this.userFeaturesRepository.findById(id);
objectProfile = await this.userFeaturesRepository.getProfileObj(myUserFeatures);
await this.userFeaturesRepository.updateById(id, objectProfile);
resolve()
})

const promiseIAM = new Promise(async (resolve) => {
let objectIAM = await this.userIAMRepository.findById(id);
objectIAM = await this.userIAMRepository.getIAMObj(myUserFeatures);
objectIAM.email = objectIAM.email.toLowerCase();
await this.userIAMRepository.updateById(id, objectIAM);
resolve()
})
await Promise.all([promiseFeature, promiseIAM]);

代码是有效的,但我真的不知道该由谁来解决esint问题。

谢谢,提前

试试这个:

const promiseFeature = new Promise((resolve) => {
(async() => {
let objectProfile = await this.userFeaturesRepository.findById(id);
objectProfile = await this.userFeaturesRepository.getProfileObj(myUserFeatures);
await this.userFeaturesRepository.updateById(id, objectProfile);
resolve()
})();
})

const promiseIAM = new Promise((resolve) => {
(async() => {
let objectIAM = await this.userIAMRepository.findById(id);
objectIAM = await this.userIAMRepository.getIAMObj(myUserFeatures);
objectIAM.email = objectIAM.email.toLowerCase();
await this.userIAMRepository.updateById(id, objectIAM);
resolve()
})();
})
await Promise.all([promiseFeature, promiseIAM]);

我想这里发生的事情是ESLint希望您的promise中的回调函数返回void,但由于它们是async,所以它们正在返回promise。

参见";返回值";部分。

最新更新