处理多个ajax调用

时间:2018-04-09 13:44:48

标签: ajax reactjs axios

我追求的情景如下:

有两个不同的ajax调用,它们在我的react应用程序中从服务器端检索数据。它们不需要被链接,并且响应不是相互依赖的。我目前的代码如下。

componentDidMount() {
    axios.all([
        getOrganizationsForUser(this.state.accessToken, this.state.userId),
        getAllUsersOfOrganizationsTemp()
    ]).then(axios.spread((organizations, users) => {
        this.setState({
            userOrganizations: organizations.data,
            OrganizationUsers: users
        });
    }))
}

因此,当一个呼叫被拒绝或失败时,上述代码中的整个ajax呼叫失败。什么是处理多个,非相关/非依赖的ajax调用的最佳方法?

1 个答案:

答案 0 :(得分:0)

如果请求的两个请求彼此分开并且不依赖于一起,那么为什么要对请求组进行分组?

你可以拨打多轴呼叫,这种方式不会降低你的性能

如果你想设置你的一个实例axios方法,正是因为这个原因,你有一些方法的配置而你不想重写它们你可以用create()方法创建一个axios实例然后设置你的任何配置你想要

看到这个

const instance = axios.create(); 

在上面,你创建了一个axios实例,然后以这种方式设置你的配置,例如你想要设置超时

instance.defaults.timeout = 2500;

之后你可以得到任何请求

 instance.get('/query', {
     // --------
  });

如果要覆盖配置,可以在实例中进行设置

 instance.get('/query', {
  timeout: 5000
   });