标签:Effect

共 169 篇文章带有这个标签。

Effect Workflow 怎么让长流程重启后接着跑?

下单预留库存、大额订单等人工审批,审批隔天才来,服务中途还可能重启。这篇讲 effect/workflow 怎么定义这样的流程,以及用 SQLite 验证过的重启后恢复。

Effect Workflow 的幂等要做到哪几层?

workflow 里重复副作用有三个来源:重复提交、步骤重放、外部调用重试。这篇讲三层幂等各自保护什么,以及 Activity.idempotencyKey 为什么默认不含尝试次数。

Effect 的 RPC 契约怎么写?

用 Rpc.make 声明调用的名字、payload、成功类型和错误类型,用 RpcGroup.make 归组,服务端和客户端共享同一份 Schema,业务失败也成为契约的一部分。

Effect 里怎么用 SqlClient 做事务?

用 SqlClient 的模板字符串写查询,用 SqlSchema.findOne 绑定入参与结果的 Schema,用 sql.withTransaction 包住一段 Effect,成功提交,失败或中断回滚。

怎么把回调式 API 包装成 Effect?

Node 的 fs.readFile 这类回调式 API 没有 Promise 可包。用 Effect.callback 配合 resume,还能在被中断时清理定时器等资源。

Effect.promise 和 Effect.tryPromise 该用哪个?

两者都能把 Promise 包成 Effect,区别在 reject 之后是缺陷还是类型化的失败。这篇讲清怎么选、简写为什么不够,以及 signal 能取消什么。

Effect.runSync 为什么会抛 AsyncFiberError?

Effect 的类型不区分同步和异步,所以 runSync 遇到包着 Promise 的 Effect 会在运行时抛 AsyncFiberError。这篇讲清原因、好处和应对方式。