首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >带通量的误差处理程序

带通量的误差处理程序
EN

Stack Overflow用户
提问于 2015-01-15 05:46:50
回答 1查看 3.6K关注 0票数 16

我有一个React.js应用程序,我正在重构它来使用Flux体系结构,并且我很难弄清楚在坚持Flux模式的同时,错误处理应该如何工作。

当前,当遇到错误时,会触发一个jQuery事件'AppError‘,订阅此事件的一般错误处理助手会将一个Flash消息放到用户的屏幕上,登录到控制台,并通过API调用报告它。更好的是,我可以从应用程序的任何部分触发一个错误,并以一致的方式处理它。

我似乎不知道如何在Flux体系结构中应用类似的范例。下面是我正在努力解决的两种特殊情况。

1) API调用失败

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

可能的解决办法:

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

2) Store收到意外的操作

这才是我真正困惑的地方。我想要处理的情况是,当一个动作被分派到一个没有意义的商店时,考虑到该商店的当前状态。我可以在Store中处理错误以清理状态,但可能仍然希望触发意外发生的错误。

可能的决议:

  1. 从存储区发出指示错误的新操作。 我相信Stores不应该分派操作(如果我错了请告诉我),而且我仍然存在与上面的API错误相同的问题。
  2. 为订阅每个商店的错误处理创建一个ControllerView 我可以在每个商店上定义一个错误属性,然后让一个视图监视每个商店,并且只对这些错误属性进行操作。当错误属性不是null时,它可能会分派新的操作等等。缺点是,每当创建新的存储时,我都需要记住将每个Store添加到这个视图中,并且每个商店都必须有一个具有相同行为方式的error属性。它也不能解决API调用失败的问题。

是否有人建议使用符合Flux体系结构的通用错误处理程序?

TL;DR

我需要处理大多数Action和Stores中的错误。如何设置对任何类型的泛型错误都会发生的一致错误处理?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-01-15 17:35:44

  1. API调用失败

如果要避免列出ErrorStore中的每个错误操作,则可以有一个泛型APP_ERROR操作,并具有更详细描述该操作的属性。然后,您的其他商店只需检查这些属性,以确定该操作是否与它们相关。在商店中注册的回调不需要集中于操作的类型,或者只关注类型--这通常是确定一个操作是否相关的最方便和一致的方法。

  1. 存储接收意外的操作。

不要发布新的行动来回应一个行动。这将导致分派内部调度错误,并将导致级联更新。相反,确定应该提前发送哪些操作。您可以在发出操作之前查询商店,如果这有帮助的话。

第二个解决方案听起来不错,但您提到的危险之处是“错误属性为非空时,它可能会分派新操作,等等”--同样,您不希望发出响应其他操作的操作。这就是Flux寻求避免的痛苦之路。您的新控制器视图只需从商店中获取值,并通过显示正确的视图来响应。

票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27957460

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档