
until-async快速上手教程5分钟写出第一个无try/catch的Promise错误处理【免费下载链接】until-asyncGracefully handle Promises using async/await without try/catch.项目地址: https://gitcode.com/gh_mirrors/un/until-asyncuntil-async 是一个零依赖的 TypeScript 工具库让你用 async/await 优雅地处理 Promise一个 until 函数返回 [error, data] 元组从此告别繁琐的 try/catch 错误处理。本文带你 5 分钟写出第一个无 try/catch 的 Promise 错误处理。 为什么需要无 try/catch 的 Promise 错误处理async/await 让异步代码写得像同步代码但 await 本身并不提供错误处理机制一旦 Promise 被拒绝整个函数作用域就会中断。于是我们只能给每个 await 套上 try/catchasync function getUser(id) { let data null try { data await fetchUser(id) } catch (error) { console.error(error) } return data }await 越多try/catch 嵌套越深还容易遗漏。until-async 的思路更简单把成功和失败都变成返回值用 error 参数判断结果而不是靠异常中断流程。 快速安装一条命令接入 until-asyncnpm install until-async纯 ESM、零运行时依赖、原生 TypeScript 类型支持Node.js 前端与后端项目均可直接使用。 5 分钟上手写出第一个 until 调用import { until } from until-async const [error, data] await until(() fetchUser(id)) if (error) { return handleError(error) } return data规则一句话成功得到 [null, 数据]失败得到 [错误, null]。你只需要判断一次 error。✨ TypeScript 友好自动推断 error 与 data 类型不写泛型时TypeScript 会根据回调返回值自动推断 data 的类型需要更精确控制时传入两个泛型参数——第一个是错误类型第二个是数据类型const [error, data] await untilUserFetchError, User(() fetchUser(id))返回类型是一个判别联合的元组在 if (error) 分支里 TS 知道 data 是 null出了 if 分支则知道 data 一定是 User。不需要 ! 非空断言也不需要额外类型标注。 进阶技巧把一整段异步逻辑交给 until为什么 until 接收一个函数而不是直接接收 Promise因为它要的是一个逻辑单元而不是一个 Promise。你可以在回调里写多步 await、校验甚至断言其中任何一步出错都会统一从同一个 error 返回const [error, data] await until(async () { const user await fetchUser() const result await saveModel(user, normalizeUser(user)) if (result.status ! OK) throw new Error(Saving user failed) return result.data })一次 if (error) 就能覆盖整段流程的失败情况代码保持扁平。 项目结构速览想进一步了解实现可以看看这些文件src/index.ts核心实现until 函数与 UntilResult 元组类型不到 30 行src/until.test.ts功能测试成功与失败两条路径src/until.test-d.ts类型测试自动推断与类型收窄README.md完整文档与更多示例package.json包信息当前 3.x 版本MIT 协议❓ 常见问题until 和 try/catch 到底有什么区别本质相同形态不同try/catch 靠异常中断流程until 把结果直接返回代码更扁平、错误更不易遗漏。需要出错立刻中断的场景仍可用 try/catch两者可以共存。能捕获非 Error 类型的错误吗可以。拒绝值即使是字符串等自定义原因也会被原样放进元组的第一个位置配合 TypeScript 泛型还能明确声明错误类型。适合哪些场景API 请求封装、批量任务、后台作业以及任何希望拿到错误而不是中断流程的异步逻辑——它的 [error, data] 形态与 Node.js 回调约定非常接近在 Node.js 服务中尤其顺手。总结until-async 用不到 30 行代码解决了一个高频痛点一个 until 函数让 Promise 错误处理告别 try/catch 嵌套。现在就可以安装它在你的下一个 async/await 项目里试试 ✨【免费下载链接】until-asyncGracefully handle Promises using async/await without try/catch.项目地址: https://gitcode.com/gh_mirrors/un/until-async创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考