SuperAPI AI 工具集

better-all

编程与开发

查看项目

更新于 10-15 20:10

技能介绍

用途:better-all 提供类似 Promise.all 的并行执行能力,但支持任务以内联方式声明依赖,由库自动进行基于 DAG 的依赖优化,并通过 TypeScript 提供完整类型推断。适用于需要并行化异步操作的场景。

主要能力:独立任务自动并行执行;依赖任务自动等待,无需手动编排;可在同一对象中混合定义独立与依赖任务;结果根据各任务返回类型进行完整类型推断,如 results.count 推断为 number、results.combined 推断为对象类型。相比手写多段 Promise.all 的方式可减少手动分析并行关系的出错风险。

使用方式:通过 pnpm add better-all 安装。从包中导入 all,传入一个任务对象。独立任务直接返回 Promise;依赖任务接收 ctx,通过 ctx.$.任务名 访问前置结果。调用后返回包含全部任务结果的 Promise,按任务名访问。

示例要点:all({ fetchUser: () => fetchUser(userId), fetchPosts: () => fetchPosts(userId), combined: async (ctx) => { const user = await ctx.$.fetchUser; const posts = await ctx.$.fetchPosts; return { user, posts }; } }) 中,fetchUser 与 fetchPosts 并行,combined 自动等待两者。

文档还提到可参考 dag-patterns.md 了解复杂 DAG 模式。该库尚未在 DeepWiki 或 Context7 中收录,GitHub 仓库地址为 https://github.com/shuding/better-all。

限制:资料未提供运行时环境、浏览器支持、版本要求、性能基准及收费信息,暂未提供。