Promise.all每次处理一组6个中的承诺

时间:2016-12-08 19:36:47

标签: javascript angularjs promise angular-http

我想同时制作一堆(假设20个)HTTP POST请求(以便将应用程序的信息发送到某些HTTP服务器)。

我正在使用 http 角度服务来返回一个承诺:

function deployPromise(server, app){
  return $http({
    method: 'POST',
    url: server.url,
    data: app
  });
}

对于同步部署,我使用Promise.all获取deployPromises数组:

function deploy(servers, app){
  Promise.all(servers.map(function(server){
    return deployPromise(server, app);
  }));
}

最后,我使用可用服务器数组和应用信息

调用 deploy 函数
deploy(servers, app);

令我惊讶的是,不是一次性执行所有操作,而是在一组6中发送请求(换句话说, deployPromises 已解决)。我的意思是,当前6个调用完成时,则第二个6个电话将被处理,等等。

你们有什么想法吗?

1 个答案:

答案 0 :(得分:4)

这是一个浏览器限制,您无法打开无限数量的同时连接。 Max parallel http connections in a browser?