小编bee*_*dev的帖子

带磁通的错误处理程序

我有一个React.js应用程序,我正在重构使用Flux架构,我正在努力弄清楚错误处理应该如何工作,同时坚持Flux模式.

目前,当遇到错误时,会触发jQuery事件"AppError",并且订阅此事件的通用错误处理帮助程序会在用户屏幕上显示Flash消息,登录到控制台,并通过API调用进行报告.有什么好处是我可以从应用程序的任何部分以任何理由触发错误并以一致的方式处理它.

我似乎无法弄清楚如何在Flux架构中应用类似的范例.以下是我正在努力解决的两个特殊情况.

1)API调用失败

我的所有API调用都是由动作创建者创建的,并且我使用承诺在失败时调度错误事件(IE'LOAD_TODOS_FAILED').商店看到这个事件,并相应地更新它的状态,但我仍然没有我的上一次迭代(通知等)的一般错误行为.

可能的决议:

我可以创建一个绑定到'LOAD_TODOS_FAILED'操作的ErrorStore,但这意味着每次我遇到新类型的错误时,我都需要将该操作显式添加到ErrorStore,而不是自动处理所有错误.

2)商店收到意外的行动

这是我真正感到困惑的一个.我想处理一个动作被分派到商店的情况,因为商店的当前状态没有意义.我可以处理Store中的错误来清理状态,但仍然可能想要触发意外发生的错误.

可能的决议:

  1. 从商店发送指示错误的新操作.

    我相信商店不会派遣行动(让我知道我是不是错了),而且我仍然遇到与上述API错误相同的问题.

  2. 为订阅每个商店创建一个用于错误处理的ControllerView

    我可以在每个商店中定义一个errors属性,然后让View观察每个商店并仅对errors属性进行操作.当errors属性不为null时,它可以调度新的操作等.缺点是我需要记住每当创建新的时都将每个Store添加到该视图,并且每个商店必须具有行为相同的error属性办法.它也无法解决API调用失败问题.

有没有人有一个适合Flux架构的通用错误处理程序的建议方法?

TL; DR

我需要处理大多数Action Creators和Stores中的错误.如何为任何类型的一般错误设置一致的错误处理?

reactjs-flux

16
推荐指数
1
解决办法
3355
查看次数

时刻显示午夜,_i和_d属性不匹配

我在我的Web应用程序中使用了moment.js,遇到了一个错误,许多对象的时间在某个时刻变为午夜.我仍然试图追捕什么,如果有什么事情触发了这一变化,但看着其中一个时刻,我注意到_i属性显示了原始/正确的时间.

以下是其中一个时刻的开发者控制台输出, mm

_d: Thu Apr 02 2015 00:00:00 GMT-0400 (EDT)
_f: "YYYY-MM-DDTHH:mm:ssZ"
_i: "2015-04-02T12:10:43-04:00"
_isAMomentObject: true
_isUTC: false
_isValid: true
_locale: Locale
_pf: Object
_tzm: -240

mm.toISOString()
// "2015-04-02T04:00:00.000Z"

moment(mm._i).toISOString()
// "2015-04-02T16:10:43.000Z"
Run Code Online (Sandbox Code Playgroud)

_i代表什么,为什么它不匹配字符串输出?

momentjs

3
推荐指数
1
解决办法
2424
查看次数

标签 统计

momentjs ×1

reactjs-flux ×1