FiberFailure · TypeError
这是线索,不是结论。
内容由机器从检索到的中文译文合成,尚未经人确认;引用是提问那一刻的快照,
译文更新后可能过时。每条都附了可点回原文的链接 —— 请核对后再采用。
发现不对请
提 issue。
报错原文
(FiberFailure) TypeError: yield* (intermediate value) is not iterable
at <anonymous> (<project>/apps/api/seed-cases/15-yield-non-effect.ts:4:59) 诊断
最可能的原因:在 `Effect.gen` 的 generator 函数里,`yield*` 的对象不是一个 Effect(比如是普通值、Promise 或其它不可迭代的值),所以运行时抛出 `is not iterable`,这与第 4 行的 `yield*` 表达式直接对应。 修复方向:确保 `yield*` 后面始终是 Effect——纯值用 `Effect.succeed`、Promise 用 `Effect.promise`/`Effect.tryPromise` 包起来,或者对纯值直接 `return` 而不要 `yield*`。 不过现有文档片段只说明 `Effect.gen` 基于 generator 且 Effect 是惰性描述,未明确 `yield*` 的合法取值,建议补充第 4 行附近的最小复现代码以确认。
依据(3 条站内译文)
- 使用 Generator
#introEffect 提供了一种便捷的语法,它类似于 async/await,让你可以使用 generators 编写带副作用的代码。
核验记录 · 英文原文 · 基线16b1646 - 使用 Generator
#理解-effectgenEffect.gen 工具借助 JavaScript 的 generator 函数,简化了编写带副作用代码的工作。
核验记录 · 英文原文 · 基线16b1646 - Effect 类型
#introEffect 类型是对一个工作流或操作的描述,它会被惰性执行。
核验记录 · 英文原文 · 基线16b1646
你也被这个报错卡住了?
把你自己的报错整段贴到报错诊断 —— 它提取的 API 名与类型名来自你的实际代码,比照抄别人的诊断更准; 诊断完也会并进这一条(同一报错算同一条)。
本页来自 2026-09-13 的快照(https://effect-ts.cn)。来自站内 /debug 的真实诊断,按报错签名归并(绝对路径/行列号/堆栈帧已归一)。条目为机器生成、未经人审(reviewed 字段),引用是提问那一刻的快照。