一个会出现部分完成的任务应该如何设计

40 天前
 mouyase
我是前端,正常异步任务都是用 promise 处理,这玩意正常应该是有成功和失败两个状态



但是现在有这么一个问题需要处理。



有两个异步任务拼在一起的异步任务。

有可能会出现一个成功,一个失败的情况。



这种情况应该如何设计比较合理。



理论上失败的时候是需要知道失败原因并做后续处理的。



我目前的想法是全都失败算失败,不管成功还是失败都算成功,返回数据的同时,返回 code 和 msg 用来处理失败。

然后只有异常的时候才返回失败。



不知道这样是否合理。
652 次点击
所在节点    问与答
7 条回复
rrfeng
40 天前
两个 promise 可以获取到 4 种状态啊,不是每种都可以处理吗?
WhateverYouLike
40 天前
allSettled ,race ,any 选一个合适的。
都要处理就 allsettled
WhateverYouLike
40 天前
不好意思,你这两个异步任务是串行的还是并行的呢,我说的是并行的情况。
mouyase
40 天前
@rrfeng 两个 promise 现在被包在同一个 promise 里了,所以一个成功一个失败的情况,我不知道如何设计会好一点
mouyase
40 天前
@WhateverYouLike 是并行的
sagaxu
40 天前
部分成功的时候,有 3 个问题

1. 技术上是否可重启失败的任务
2. 业务逻辑上是否应该重试,重试几次,间隔多久
3. 确定失败之后如何展示错误

1 是开发决定,2 和 3 是产品决定,所以你在纠结什么?
mouyase
40 天前
@sagaxu 你说的队,不是我该想的,不想了,统一都放 reslove 里了

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1064714

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX