如何在JavaScript中将多个请求拆分为块

如何在JavaScript中将多个请求拆分为块,javascript,request-promise,Javascript,Request Promise,我有一组请求,但不能同时调用所有请求,因此我决定将这些请求分成10个请求。 我想知道我怎样才能发出10个请求,然后像上面的例子那样等待它们全部完成: data = [] for(mindex = 0; mindex < 1000; mindex = mindex + 10){ request_chunk = [] for(index = mindex+1; index < mindex+10; index++){ request_chunk.push(api.

我有一组请求,但不能同时调用所有请求,因此我决定将这些请求分成10个请求。 我想知道我怎样才能发出10个请求,然后像上面的例子那样等待它们全部完成:

data = []
for(mindex = 0; mindex < 1000; mindex = mindex + 10){
   request_chunk = []
   for(index = mindex+1; index < mindex+10; index++){
      request_chunk.push(api.call(requests[index]).getPromise();
   }

  data = data + waitPromiseToComplete(request_chunk);
}
data=[]
对于(mindex=0;mindex<1000;mindex=mindex+10){
请求块=[]
对于(索引=mindex+1;索引
您可以使用Promise.all并等待:

(async function () {
  const data = []; // always declare variables!
  for(let mindex = 0; mindex < 1000; mindex = mindex + 10){
    const request_chunk = []
    for(let index = mindex + 1; index < mindex + 10; index++){
      request_chunk.push(api.call(requests[index]).getPromise();
    }

    data = data.concat(await Promise.all(request_chunk));
  }
})();
(异步函数(){
const data=[];//始终声明变量!
对于(让mindex=0;mindex<1000;mindex=mindex+10){
const request_chunk=[]
对于(让索引=mindex+1;索引
也许作为一种替代策略,你愿意使用rxjs吗?@davidmpaz rxjs适合我的情况吗?是的,请查看链接。虽然你已经得到了最初要求的承诺回答