Node.js 与节点并行运行一个循环

Node.js 与节点并行运行一个循环,node.js,Node.js,我有这样一个数组: var subscriptions = ['sub_1234', 'sub_5678', 'sub_8493']; var subscriptionData = []; for(var i in subscriptions) { subscriptionID = subscriptions[i]; var data = await stripe.subscriptions.retrieve(subscriptionID); subscriptionData.pu

我有这样一个数组:

var subscriptions = ['sub_1234', 'sub_5678', 'sub_8493'];
var subscriptionData = [];
for(var i in subscriptions) {
  subscriptionID = subscriptions[i];
  var data = await stripe.subscriptions.retrieve(subscriptionID);
  subscriptionData.push(data);
}
在我的实际应用程序中,阵列通常有大约800个订阅ID

目前我有一个这样的循环:

var subscriptions = ['sub_1234', 'sub_5678', 'sub_8493'];
var subscriptionData = [];
for(var i in subscriptions) {
  subscriptionID = subscriptions[i];
  var data = await stripe.subscriptions.retrieve(subscriptionID);
  subscriptionData.push(data);
}
循环的目的是推断订阅id,以找出与该id相关的所有信息(付款金额、发票等)

问题是,600份订阅可能需要20-30分钟才能浏览所有这些数据

是否需要并行运行for循环,以便它一次提取所有条带订阅并将数据推送到阵列上?然后继续

我在看这个图书馆:


但是,如果您不知道数组的长度(数组可以是可变长度的),我不知道如何让它执行此操作。

您可能应该重新考虑如何处理这么多请求。可能希望发送包含所有ID的API 1请求,而不是一次发送1time@Derek我在想,但不知道怎么在条纹上做,它只允许一次获取一个订阅的详细信息。您可以同时检索10个或20个订阅,并使用
Promise为它们等待
。所有
异步和并行之间都有区别。要与Node真正并行运行任何内容,您需要使用。但是,您可以使用
Promise.all
同时启动API调用,如fxgx建议的,如果您需要的话need@dpopp07您能否使用类似示例的数组提供示例?我找不到任何Promise.all()这样的数组示例。您可能应该重新考虑如何处理这么多请求。可能希望发送包含所有ID的API 1请求,而不是一次发送1time@Derek我在想,但不知道怎么在条纹上做,它只允许一次获取一个订阅的详细信息。您可以同时检索10个或20个订阅,并使用
Promise为它们等待
。所有
异步和并行之间都有区别。要与Node真正并行运行任何内容,您需要使用。但是,您可以使用
Promise.all
同时启动API调用,如fxgx建议的,如果您需要的话need@dpopp07您能否使用类似示例的数组提供示例?我找不到任何Promise.all()示例使用这样的数组。有没有办法一次以10个为一组运行这样的请求?我不断收到与太多并发请求相关的错误。您可以尝试使用parallelLimit。有没有办法一次以10个为一组运行这样的请求?我不断收到与太多并发请求相关的错误。您可以尝试使用parallelLimit