我有一个像这样的数组:
var subscriptions = ['sub_1234', 'sub_5678', 'sub_8493'];
在我的实际应用程序中,数组通常有大约 800 个订阅 ID。
目前我有一个这样的循环:
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 循环,以便一次拉取所有 strip 订阅并将数据推送到数组上?然后继续?
我正在查看这个库:https://github.com/caolan/async
但是如果您不知道数组有多长(数组可以是可变长度),我无法弄清楚如何让它做到这一点
最佳答案
const subscriptions = ['sub_1234', 'sub_5678', 'sub_8493'];
async function customFunction(subscriptions) {
const getSubscription = subscriptions.map((item) => {
return stripe.subscriptions.retrieve(item);
});
const subscriptionData = await Promise.all(getSubscription);
return subscriptionData; // returns an array
};
// call the function and pass parameter value
customFunction(subscriptions);
关于node.js - 与 Node 并行运行循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52264370/