我想知道操作何时完成-这是一个迭代,其中我们不知道要迭代的列表大小(可以是任意长度)。
这是我的代码:
var array = [];
stripe.charges.list().autoPagingEach(function(charge) {
var post = {
chargeId: charge.id,
customerId: charge.customer,
sourceId:charge.source.id,
amount:(charge.amount/100).toFixed(2),
description:charge.description,
dateAndTime:moment(charge.created*1000).format('YYYY-MM-DD HH:mm:ss'),
chargeStatus:charge.status,
failureMessage:charge.failure_message
};
array.push(post)
});
一旦迭代完成,我怎么console.log(array.length)
?
我已经看到一些示例,这些示例使用带有Done()
的回调,这似乎是我要追求的目标-但我不知道如何将其纳入代码中。
答案 0 :(得分:0)
根据Stripe的文档,stripe.charges.list()
返回一个对象,其中包含data
属性中的费用列表。
您可以这样做:
let charges = stripe.charges.list();
let pending_charges = charges.data.length;
charges.autoPagingEach(function(charge) {
// do your thing
pending_charges -= 1;
if ( pending_charges == 0 ) {
// call a function after the last charge has been processed
// and be careful with failing autoPagingEach() executions
}
});