reactjs / flux:按顺序执行动作(ajax)

时间:2016-11-18 19:01:14

标签: javascript ajax reactjs flux

我有助手操作,它们只是AJAX调用,用成功数据更新商店。

在我的组件中,我有一个使用这些操作的函数:

// Insert new event
ReactActions.submitNewEvent(data)
// Insert new exceptions 
ReactActions.submitNewExceptions(exception_objects)

// Merge
ReactActions.merge(data, exception_objects)

我想在执行第三个操作之前完全执行前两个操作(意味着来自ajax方法的200个成功响应)

在类似Flux的架构中,最好的方法是什么?我应该选择承诺吗?你能举个例子吗?

1 个答案:

答案 0 :(得分:1)

是的,承诺是解决此类问题的好方法。

Promise.all()将帮助您将最后一个呼叫与前两个呼叫同步。确保submitNewEvent()submitNewExceptions()都返回完成AJAX调用时解析的promise:

Promise.all([
    ReactActions.submitNewEvent(data),
    ReactActions.submitNewExceptions(exception_objects)
]).then(function() {
    ReactActions.merge(data, exception_objects)
})