kotlin-coroutines-expert
精通 Kotlin Coroutines & Flow
Kotlin Coroutines 和 Flow 可能比较复杂,难以掌握。本技能提供结构化并发、错误处理和异步代码测试的专业模式。
下载技能 ZIP
在 Claude 中上传
前往 设置 → 功能 → 技能 → 上传技能
开启并开始使用
测试它
正在使用“kotlin-coroutines-expert”。 如何并行运行两个 API 调用并独立处理错误?
预期结果:
使用 supervisorScope 运行异步任务,其中一个任务的失败不会取消其他任务。示例:val task1 = async { api.fetchA() }; val task2 = async { api.fetchB() }; 两者可以独立失败而不影响彼此。
正在使用“kotlin-coroutines-expert”。 何时应该使用 StateFlow 与 SharedFlow?
预期结果:
使用 StateFlow 处理需要保留且始终具有当前值的 UI 状态。使用 SharedFlow 处理一次性事件,如导航或显示 toast 消息。
安全审计
安全Static analysis flagged 26 potential issues (24 external_commands, 2 weak cryptographic). Manual review confirms all are FALSE POSITIVES. The 'external_commands' detections are markdown backtick formatting (e.g., `coroutineScope`) not shell execution. The 'weak cryptographic' detections are misidentified content. This is a legitimate Kotlin Coroutines documentation skill with no security risks.
质量评分
你能构建什么
后端开发者
在 Kotlin 微服务中实现异步 API 调用和并行数据获取
Android 开发者
在 Android 应用中处理异步 UI 更新和响应式数据流
代码审查员
审查协程代码以确保正确的错误处理和结构化并发模式
试试这些提示
展示如何在 Kotlin 中为并行 API 调用设置 CoroutineScope
如何在 Kotlin Flow 管道中处理错误?
使用 TestScope 为挂起函数编写单元测试
解释如何在不捕获 CancellationException 的情况下正确处理协程取消
最佳实践
- 始终对阻塞 I/O 操作使用 Dispatchers.IO,以避免阻塞主线程
- 当协程作用域不再需要时取消它们(例如在 ViewModel.onCleared 中)
- 使用 TestScope 和 runTest 进行具有虚拟时间的确定性协程测试
避免
- 避免使用 GlobalScope - 它会破坏结构化并发并可能导致内存泄漏
- 不要捕获 CancellationException,除非你重新抛出它 - 这会破坏协作式取消
- 当高级 API 足够时,避免使用 suspendCoroutine 或 suspendCancellableCoroutine