为什么我需要在axios.all回调中使用扩散函数?

时间:2016-11-15 14:24:11

标签: javascript httprequest axios

我想使用Axios库发送多个请求。因此,根据docs,我可以使用all方法执行此操作。这是一个例子:

function getUserAccount() {
  return axios.get('/user/12345');
}

function getUserPermissions() {
  return axios.get('/user/12345/permissions');
}

axios.all([getUserAccount(), getUserPermissions()])
  .then(axios.spread(function (acct, perms) {
    // Both requests are now complete 
  }));

但为什么我需要写

.then(axios.spread(function (acct, perms) {
    // Both requests are now complete 
  }));

而不是

.then(function (acct, perms) {
        // Both requests are now complete 
      });

如果它也能正常工作?

1 个答案:

答案 0 :(得分:0)

您需要使用axios.spread,因为它用于将参数数组分散到多个参数中。当您使用axios.all发出多个ajax请求时,这可以防止出错。

axios.all([
 axios.get('https://api.github.com/users/abc');
 axios.get('https://api.github.com/users/abc/repos')
])
.then(axios.spread(function (userResponse, reposResponse) {
  console.log('User', userResponse.data);
  console.log('Repositories', reposResponse.data);
}));