一、主要更新内容
1. allFulfilled & allRejected 性能优化
难点分析:
- 需兼顾“即时返回结果”与“保持输入顺序”的双重需求
- 避免因等待所有 Promise 完成导致的性能损耗
- 确保高并发场景下的结果一致性
解决方案:
- 底层重构实现逻辑,采用“增量收集+顺序校准”机制
- 单个 Promise 完成后立即返回当前已收集结果,无需等待全部完成
- 最终结果严格遵循输入顺序排列,不受 Promise 完成顺序影响
示例:
import { PromiseLogic } from 'promise-logic';
const operations = [
new Promise(resolve => setTimeout(() => resolve('slowSuccess'), 100)),
Promise.reject('error'),
new Promise(resolve => setTimeout(() => resolve('fastSuccess'), 10))
];
PromiseLogic.allFulfilled(operations).then(results => {
console.log('优化后结果:', results);
});
2. maxTimer 链式超时增强
难点分析:
- 需支持自定义错误信息,满足不同业务场景的报错需求
- 保持超时逻辑的中断特性,同时兼容链式调用
- 确保错误类型与原有错误体系一致
解决方案:
- 扩展 maxTimer 方法参数,支持传入自定义错误信息
- 超时后立即中断 Promise 链,跳转至错误处理逻辑
- 错误类型统一归类为 PromiseLogicError ,通过 error.type 标识超时类型
示例:
import { PromiseLogic } from 'promise-logic';
PromiseLogic.and([
Promise.resolve(1),
new Promise(resolve => setTimeout(resolve, 3000)),
Promise.resolve(3)
])
.maxTimer(2000, '接口请求超时:2秒内未完成所有操作')
.catch(error => {
console.error(error.message);
});
3. TypeScript 类型修复
难点分析:
- 解决 TypeScript 版本中类型推断不准确的问题
- 支持显式类型断言与自动类型推断双模式
- 确保所有逻辑门方法的类型定义一致性
解决方案:
- 重构 TypeScript 类型声明文件,优化泛型约束
- 为所有核心方法添加泛型支持,支持显式指定返回类型
- 修复 majority 、 allFulfilled 等方法的类型推断漏洞
示例:
import { PromiseLogic } from 'promise-logic/typescript';
PromiseLogic.majority([fetch('/api1'), fetch('/api2')])
.then((results: Response[]) => { });
PromiseLogic.and([Promise.resolve(1), Promise.resolve(2)])
.then((results: number[]) => { });
二、项目更新内容
- 性能优化:底层重构 allFulfilled 、 allRejected 实现,兼顾即时返回与顺序一致性
- 超时功能增强: maxTimer 方法支持自定义错误信息,错误类型标准化
- TypeScript 支持:修复类型声明问题,完善泛型支持,支持显式/自动类型推断
- 测试覆盖:新增 allFulfilled 、 allRejected 、 maxTimer 完整单元测试,覆盖率100%
- 代码重构:优化项目结构,拆分逻辑模块,提升可维护性
三、版本更新说明
- 英文: v2.8.0_Performance optimization for allFulfilled/allRejected, add custom error messages for maxTimer, fix TypeScript type issues, complete test cases, refactor code structure
- 中文: v2.8.0_优化 allFulfilled/allRejected 性能,maxTimer 支持自定义错误信息,修复 TypeScript 类型问题,完善测试用例,重构代码结构