【发布时间】:2019-07-15 17:42:19
【问题描述】:
我很好奇获取操作结果是否是一种有效的方法,如果是,那么如何做到这一点?
例如,假设我有一个带有用于创建实体的表单的页面,在成功创建实体后,我想将用户重定向到实体的详细信息视图,否则(失败时)通过错误消息更新表单。我想在不混淆应用程序层的情况下执行此操作(例如,在成功后不以史诗/效果重定向用户)。
我想到了一些解决这个问题的方法:
(可观察模式)分派一个“触发”动作(
entity_add),然后在我的史诗/效果中的某处分派一个成功(entity_add_success)或失败(entity_add_failure)动作,等待失败或成功操作和执行操作 - 这种方法有一个明显的缺点:可能同时创建其他实体,在这种情况下如何区分实体的失败/成功操作?(回调模式)派发一个带有额外回调参数的触发器动作,当动作结果确定时应该调用该参数,这种方法也有一个缺点(虽然没有前一种那么大):创建回调的可能性地狱。
(服务模式)在这种情况下放弃使用flux,直接使用服务,设计缺点:混合应用层
我很高兴听到任何想法。
【问题讨论】:
标签: javascript typescript design-patterns redux flux