我在自定义 ESLint 规则中集成异步/等待操作时遇到问题。这是我的代码的简化版本:
module.exports = {
meta: {
type: "problem",
docs: {
description: "This rule checks if any vulnerabilities appear in an imported package"
},
fixable: false,
schema: []
},
create(context) {
return {
async ImportDeclaration(node) {
const data = await apiCall();
context.report({
node,
message: "message"
});
}
};
}
}
当我在 ImportDeclaration 回调中包含异步操作(await apiCall())时,就会出现问题。 context.report() 方法似乎没有按预期工作。但是,当我删除 async/await 操作时,context.report() 可以正常运行。
有人可以指导我如何在 ESLint 规则回调中正确处理异步操作,确保 context.report() 正常运行吗?任何见解或替代方法将不胜感激。谢谢!
提供给 module.exports 的 create() 函数应该是同步的。它不能是异步函数。您可以在规则回调中使用异步操作,但 create() 函数本身不应该是异步的