reactjs/flux:按顺序执行操作(ajax)
问题描述:
我有一些流量操作,它们只是简单的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的体系结构中执行此操作的最佳方法是什么?我应该选择承诺吗?你能举一个例子吗?
答
是的,承诺是一个很好的方法来解决这样的问题。
Promise.all()
将帮助您将上次调用与前两次调用同步。确保两个submitNewEvent()
和submitNewExceptions()
返回时,AJAX调用完成了解决一个承诺:
Promise.all([
ReactActions.submitNewEvent(data),
ReactActions.submitNewExceptions(exception_objects)
]).then(function() {
ReactActions.merge(data, exception_objects)
})
谢谢。那么我的Action的ajax在返回时是否需要用'Promise.resolve()'封装呢? – ApathyBear
查看[关于Promises的MDN文章](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise)。他们给出了一些关于如何实现它们的很好的例子。 – Timo