如何在Flux中正确链接动作(alt)

时间:2016-06-17 19:29:50

标签: javascript reactjs flux alt

我正在研究React项目,我们正在使用Alt库来处理操作和存储。我无法找到答案,如何在不诉诸setTimeout()或以其他方式破解Flux范例的情况下链接两个动作。

我的理解是事件发生在React组件中,该组件触发一个Action,它会级联到Stores。不允许商店启动任何新操作或修改其他商店中的数据。但有时我们需要按顺序链接几个动作。是否有可能产生两个动作,一个人会在完成另一个动作时听到它?

考虑一个例子。 一群人站在一辆车旁边。一个事件促使他们进入汽车并开始驾驶。在一个Flux的世界里,它可以看作是两个动作"进入"和"去"。每个人(将他们视为"商店")是独立的,可能需要不同的时间才能坐下来。在继续下一步行动之前,驾驶员需要确保每个人都坐下来 - " Go"。并且" Go"不是可以限制在驾驶员身上的东西 - 它可以对其他乘客产生影响(如晕车)。

如何在Flux(Alt)中实现?

2 个答案:

答案 0 :(得分:1)

实际上,一个动作可以触发几个动作。可观察的&承诺对于链接多个行动派遣非常有用。如果您想尝试观察,请查看RxJS。为了承诺,我使用了blue bird

如果您使用Redux,请查看实际提供setTimeout替代方案的Redux-thunk

答案 1 :(得分:1)

也许action.defer就是您所需要的。

CarActions.getIn(driver,passengers)
CarActions.go.defer(driver)