探讨:redux的异步action中成功/异常/超时等处理问题

#1

在我们使用redux时,使用异步action的时候,如何在action处理各种case呢?
就是说,我们请求一个接口之后,服务端可能返回正常数据,也可能是错误数据,也可能超时等,而我们在action拿到不同结果的时候,我们如何更优雅的处理呢?

目前看到两种,自己目前用这种,在action中,返回server状态,然后在store中,同时用不同变量来保存每个接口的状态,最后在view中进行各种接口状态判断提示toast或者错误信息页面等

{ type: 'FETCH_POSTS' }
{ type: 'FETCH_POSTS', status: 'error', error: 'Oops' }
{ type: 'FETCH_POSTS', status: 'success', response: { ... } }

还有一种,是使用三种不同名称的type

{ type: 'FETCH_POSTS_REQUEST' }
{ type: 'FETCH_POSTS_FAILURE', error: 'Oops' }
{ type: 'FETCH_POSTS_SUCCESS', response: { ... } }

感觉这样也是麻烦,而且需要定义多个action,虽然有redux-actions来帮助

所以,大家认为还有什么更好的办法去处理吗?

#2

另外补充一点:

不能统一处理,因为可能会有针对不同接口,进入不同的异常处理的需求,比如A接口就是toast,B接口就是弹dialog对话框,C接口是到错误页,D接口可能不处理

#3

redux-promise