在React中处理异步请求的最佳模式是什么?

时间:2016-03-02 07:35:02

标签: javascript asynchronous reactjs

React完全是关于纯状态的,我的status组件状态中有一个App变量,用于跟踪应用当前正在做什么。为简化起见,我们假设有三种状态:Waiting for InputFetching URLError

当用户提交URL时,状态将更改为Fetching URL并触发$.get()请求以从中获取数据。请求成功或失败后,应用状态将分别更改为Waiting for InputError

我的问题是,当用户提交Fetching URL状态的其他网址时,取消之前的网址请求并使用新网址重新进入Fetching URL状态是合理的。在React中处理这个问题最优雅的模式是什么?目前,我的解决方案是检入$.get()请求的success()fail()回调,以确保在更新状态之前当前网址没有更改。但是,这个解决方案不能扩展,因为我必须在每个异步请求的回调中包含检查。

1 个答案:

答案 0 :(得分:0)

如果你只想进入等待'当所有提取完成时,您需要以某种方式跟踪它们。这不是一个React问题。

最简单的解决方案就是将打开的获取请求存储在某个数组中,并在完成后将其删除。当您删除它们时,请检查列表是否为空并相应地更新您的状态。