You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Uploadthing:onClientUploadComplete是否必定在上传Promise resolve前执行完毕?

问题解答

能保证onClientUploadComplete在runningAvatarUpload这个Promise resolve前执行完毕,你的表单提交逻辑是安全的。

原因在于这类上传工具的设计逻辑:当你调用startAvatarUpload发起上传后,内部会在上传流程完成并拿到返回结果后,优先触发配置的onClientUploadComplete回调,等回调执行完成(你的回调是同步执行form.setValue),才会让返回的Promise进入resolved状态。

结合你的代码流程拆解:

  1. 调用startAvatarUpload([file])后,工具开始处理上传,拿到返回结果res;
  2. 先执行onClientUploadComplete回调,完成avatarUrl字段的赋值;
  3. 回调执行完毕后,startAvatarUpload返回的Promise才会resolve;
  4. 你在onSubmit里await这个Promise时,avatarUrl字段已经被填充,后续form.getValues()能拿到正确值。

如果后续你需要在onClientUploadComplete里加入异步操作,需要确认上传工具是否会等待回调内的异步任务完成再resolve Promise,但就当前同步赋值的代码来看,完全不存在字段未填充就提交的问题。


内容的提问来源于stack exchange,提问作者Florian Walther

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.23 06:59:56