背景介绍
IMSDK 开发过程中,逻辑特别复杂。以消息拉取逻辑为例,通过序号拉取热消息列表,接着处理消息,遍历消息内容,根据不同消息类型进行不同处理,将最终消息插入到消息表。如果消息是新会话消息还需要将会话信息插入到会话表,将用户信息插入到用户表、用户成员表等,最后通知 UI 新消息更新。网络请求、数据库操作很多都是异步操作,在整个流程中很多异步操作都是需要等待执行完才执行下一步,很多时候稍不留神就会忘记使用 await 导致出现逻辑错误的莫名其妙的 Bug。
当出现 Bug 后,很难根据现象定位到原因,只能重新梳理逻辑,查看是否有漏写 await 的地方,但是这样不仅效率低下,而且难免还是会有遗漏,有什么好办法呢?
Code Linter 登场
这个时候可以借助 Code Linter 扫描代码帮助我们发现潜在的问题。每次代码提交前使用 Code Linter 检查可能存在的风险。
Code Linter 使用
在项目中根路径下创建 code-linter.json 文件,文件配置内容格式如下:
{
"files": [ "**/*.ets" ],
"ignore": [ "**/src/ohosTest/**/*", "**/src/test/**/*", "**/src/mock/**/*", "**/node_modules/**/*", "**/oh_modules/**/*", "**/build/**/*", "**/.preview/**/*" ],
"ruleSet": [ "plugin:@performance/recommended", "plugin:@typescript-eslint/recommended" ],
"rules": {
"@typescript-eslint/return-await": "error",


