首页 > 解决方案 > Axios - 未知数量的多个请求

问题描述

Axios 显示您可以使用以下命令同时执行多个请求:

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
  }));

因此,您似乎需要知道将完成多少个请求。我的问题是我不知道在任何时候需要完成什么或多少个请求。

所以我所做的是我创建了一个函数来准备请求:

createAxiosRequest(id) {
        return axios.get('https://someapi.com/' + id);
      }

    prepareRequests(numOfReq){
       var arr=[];
           for(var i = head ; i > 0; i--){
            arr[i] = createAxiosRequest(i);
            }
    }

所以在这里我基本上返回了一个包含所有请求的数组。然后我把这个数组放进去:

axios.all(prepareRequests(13))
            .then(axios.spread(function (acct, perms) {//What do I do here now?

            }))

这就是我的问题所在。我不知道会有多少请求,所以我不能事先指定那些“acct、perms 等”响应。我不确定如何做到这一点,以便我可以获得所有请求,并且即使一两个失败,我仍然希望请求通过,但如果所有请求都成功,这似乎会运行。

标签: javascriptpromiseaxios

解决方案


推荐阅读