首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >通过vue-resource限制并发HTTP调用

通过vue-resource限制并发HTTP调用
EN

Stack Overflow用户
提问于 2017-10-26 14:32:26
回答 1查看 394关注 0票数 0

我们在应用程序中通过vue- $http.get并发执行多个资源调用。有没有办法设置一个限制,让vue-resource根据这个限制对请求进行排队并执行调用?

EN

回答 1

Stack Overflow用户

发布于 2019-02-03 05:50:17

我没有使用Vue-resource。

我只是简单地用另一个承诺来包装这个承诺:

代码语言:javascript
复制
const callBackFunction = function (valueToReturn, promise) {
  pendingRequestsArr.pop();
  if (waitingRequestsArr.length > 0) {
    executeXHR(waitingRequestsArr.shift())
  }
  if (valueToReturn.body && !valueToReturn.body.hasOwnProperty('error')) {
    if (promise) promise(valueToReturn.body.content || valueToReturn.body);
    return valueToReturn.body.content || valueToReturn.body;
  }
  else
    return valueToReturn.error
};

function executeXHR(obj) {
    if (!AJAX_CONCURRENT || pendingRequestsArr.length < AJAX_CONCURRENT) {
      pendingRequestsArr.push(obj.resource(obj.data).then((response) => callBackFunction(response, obj.promise)))
    } else {
      waitingRequestsArr.push(obj);
    }
}
function wrapPromise(resource, data){
  return new Promise((resolve, reject)=>{
    executeXHR({"resource": resource, "data": data, "promise": resolve});
  })
}
getAllProjects() {
        return wrapPromise($projects.get);//$project.get == $http.get('/projects')
      },
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46947293

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档