42 lines
1.6 KiB
Markdown
42 lines
1.6 KiB
Markdown
# CancelToken 功能变更日志 / CancelToken Feature Changelog
|
|
|
|
## [3.3.0] - 2026-01-31
|
|
|
|
### 🎉 新特性 / New Features
|
|
|
|
#### CancelToken 支持
|
|
- ✅ **配置开关**:在 `generator_config.yaml` 中配置 `generation.api.cancel_token_support: true` 启用
|
|
- ✅ **自动添加参数**:启用后,所有 API 方法自动添加 `@CancelRequest() CancelToken? cancelToken` 参数
|
|
- ✅ **向后兼容**:默认关闭,不影响现有项目
|
|
|
|
### 📝 文档 / Documentation
|
|
- ✅ 新增 `CANCELTOKEN_USAGE_GUIDE.md` - 使用指南和最佳实践
|
|
- ✅ 更新 `generator_config.template.yaml` - 添加配置示例
|
|
|
|
### 🔧 技术细节 / Technical Details
|
|
|
|
**修改的文件:**
|
|
- `lib/core/config_repository.dart` - 添加 `cancelTokenSupport` 配置解析
|
|
- `lib/pipeline/generate/impl/retrofit_api/api_parameters.dart` - 在 `_generateParameters()` 中添加 CancelToken 参数生成逻辑
|
|
- `generator_config.template.yaml` - 添加配置项说明
|
|
|
|
**生成的参数格式:**
|
|
```dart
|
|
@CancelRequest() CancelToken? cancelToken
|
|
```
|
|
|
|
### 💡 使用场景 / Use Cases
|
|
|
|
1. **页面离开取消请求** - 避免内存泄漏和不必要的状态更新
|
|
2. **用户主动取消** - 如搜索框输入时取消之前的搜索请求
|
|
3. **超时控制** - 配合 Timer 实现自定义超时逻辑
|
|
4. **批量取消** - 一个 CancelToken 可用于多个请求
|
|
|
|
---
|
|
|
|
## 相关资源 / Related Resources
|
|
|
|
- [Dio CancelToken 文档](https://pub.dev/packages/dio#cancellation)
|
|
- [Retrofit CancelRequest 注解](https://pub.dev/packages/retrofit)
|
|
- [使用指南](./CANCELTOKEN_USAGE_GUIDE.md)
|