TwKit
正在载入
TwKit

我发现 Promise.all() 有个很容易影响网站页面体验的行为,只要其中一个 Promise 失败,整个 await 就会抛出异常 这对必须全部成功的… · @yunxi0623 · TwKit

@yunxi0623

我发现 Promise.all() 有个很容易影响网站页面体验的行为,只要其中一个 Promise 失败,整个 await 就会抛出异常 这对必须全部成功的操作很合适,但不一定适合所有数据面板 比如 AI 工具站同时加载用量统计、账单和任务列表,账单接口临时返回错误,整个 Promise.all() 就无法返回完整结果,即使另外两个请求已经成功 注意,其他请求不会因为这个异常自动取消,只是你拿不到 Promise.all() 的聚合结果 这种场景可以考虑 Promise.allSettled() 它会等所有请求都完成或失败,再分别返回每项的状态: fulfilled:成功,结果在 value rejected:失败,原因在 reason 这样就能让成功的模块继续展示,失败的模块单独提示,而不是让整个页面一起空白 但如果几个操作存在依赖,或者业务要求全部成功,就不要为了“部分可用”而强行换掉 Promise.all()

曝光 24 · 评论 0 · 点赞 0 · 书签 0

查看原帖