Fitten Code插件可全自动将同步函数转为异步函数。它识别fs.readFileSync等同步调用,替换为await版本,添加async修饰符,升级错误处理,并对无法映射的调用添加TODO注释供手动处理。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

当你在 VS Code 中维护一个老旧的 Node.js 项目,大量使用 fs.readFileSync、JSON.parse 或自定义同步逻辑时,主线程容易被阻塞,而手动逐行改写为 await fs.readFile、await JSON.parseAsync 不仅耗时还极易漏掉错误处理分支或忘记加 async 修饰符——Fitten Code 的「Sync to Async」重构功能可全自动完成识别、替换、错误包装与函数签名升级。
安装并启用 Fitten Code 插件
打开 VS Code 扩展市场(Ctrl+Shift+X),搜索 Fitten Code,点击“安装”,安装完成后无需重启,插件即刻激活。
确认右下角状态栏出现 Fitten 图标,表示插件已就绪。若未出现,请检查是否禁用了该扩展或当前工作区禁用了推荐插件。
定位需重构的同步函数体
将光标置于目标函数的任意一行(函数名、参数行、首行大括号均可),确保整个函数体被完整选中——Fitten Code 依赖 AST 解析,只对语法合法的完整函数生效。
若函数内含未闭合的大括号、语法错误或被注释包裹,重构按钮将不可用。此时需先修复基础语法问题,否则后续所有操作均无响应。
触发一键异步重构
按下 Ctrl+Shift+P(Windows/Linux)或 Cmd+Shift+P(macOS),输入 “Fitten: Convert Sync Function to Async”,回车执行。
这一步操作起来很简单,直接回车即可。Fitten Code 会自动扫描函数体内所有已知同步调用(如 fs.readFileSync、require()、JSON.parse()、child_process.execSync() 等),并匹配对应异步版本。
Fitten Code 1.0.3是一款由清华博士团队打造的AI编程助手,基于国产计图(Jittor)深度学习框架开发。它支持VS Code、JetBrains系列等主流IDE及80多种编程语言。核心功能包括智能代码补全、注释生成、代码解释、Bug检测、单元测试生成等,旨在全方位提升开发效率。该工具对个人用户免费开放。
对于无法自动映射的同步调用(例如自定义的 validateSync()),插件会在原位置插入 // TODO: Replace with async version 注释,不强行替换,避免引入运行时错误。
审查并确认重构结果
方法一:查看 diff 预览
执行后,VS Code 会弹出右侧预览窗格,显示修改前后的代码对比。重点核对三处:① 函数声明是否已添加 async;② 原同步调用是否全部转为 await xxxAsync() 或 await promisify(xxx)();③ 原 try/catch 是否已升级为 try/catch 包裹 await 调用。
方法二:直接应用修改
确认无误后,点击预览窗格右上角的 ✓ Apply 按钮。此操作不可撤销,修改将立即写入文件。
注意:若函数返回值被其他地方以 .then() 调用,Fitten Code 不会自动补全 return 语句——你必须人工检查返回路径是否仍符合 Promise 链预期,否则调用方可能收到 undefined。
处理重构后遗留问题
第一步:修正未覆盖的同步调用
查找所有 // TODO: Replace with async version 注释,手动替换为真实异步实现,例如将 validateSync(data) 改为 await validateAsync(data)。
第二步:更新调用方签名
找到所有调用该函数的位置,在其所在函数前添加 async,并在调用处加上 await。例如:const result = myOldSyncFunc(); → const result = await myOldSyncFunc();。
第三步:移除冗余回调参数
若原函数形参含 callback(如 (err, data) => {}),Fitten Code 不会删除它——你必须手动删去该参数,并确认函数体内部不再引用 callback,否则会导致 ReferenceError。

















