题目
一个「授权后立刻质押」的流程用普通写交易 hook 时经常因为第二步先于第一步完成而失败,于是有人提议把两笔操作都换成 Sync 版本。请说明 Sync 变体与普通版的区别与适用边界。
考察目标
- Sync 变体的等待语义。
- 串行依赖流程的组织方式。
- 长 pending 带来的状态与交互成本。
说明 Sync 变体的等待语义、适合的流程,以及 pending 时间变长带来的状态处理成本。
一个「授权后立刻质押」的流程用普通写交易 hook 时经常因为第二步先于第一步完成而失败,于是有人提议把两笔操作都换成 Sync 版本。请说明 Sync 变体与普通版的区别与适用边界。
wagmi 为写操作提供 Sync 变体(如 useWriteContractSync、useSendCallsSync),它们会等到交易或调用批次被打包后再返回结果,适合「前一步完成才能继续」的串行流程;普通版返回哈希后由调用方自行等待回执,适合分阶段展示。Sync 变体的 mutation pending 时间更长,重复点击与离开页面的状态处理成本更高。实现差异与工程取舍见深入回答。
发现这道题有问题? 反馈此题