首页 > 解决方案 > 获得行动结果的最佳方式是什么?

问题描述

我很好奇获得行动结果是否是一种有效的方法,如果是那么如何做到这一点?

例如,假设我有一个带有用于创建实体的表单的页面,在成功创建实体后,我想将用户重定向到实体的详细视图,否则(失败时)通过错误消息更新表单。我想在不混淆应用程序层的情况下执行此操作(例如,在成功后不以史诗/效果重定向用户)。

对于这个问题,我有几种方法:

  1. (可观察模式)分派一个“触发”entity_add动作(可以同时创建实体,在这种情况下如何区分实体的失败/成功操作?entity_add_successentity_add_failure

  2. (回调模式)调度一个带有额外回调参数的触发动作,当动作结果确定时应该调用该参数,这种方法也有一个缺点(虽然没有前一种那么大):可能创建回调地狱。

  3. (服务模式)在这种情况下放弃使用flux,直接使用服务,设计缺点:混合应用层

我很高兴听到任何想法。

标签: javascripttypescriptdesign-patternsreduxflux

解决方案


我多次成功地使用了第二个选项(将回调附加到启动操作)。在我看来,这是最好的权衡。我看不到深度嵌套回调(“回调地狱”)的风险,因为通常我只需要触发一个动作,然后做一些简单的事情,比如导航到另一个页面。


推荐阅读