Как узнать, когда операция закончилась - Обратный звонок? - PullRequest
0 голосов
/ 19 ноября 2018

Я хотел бы знать, когда операция закончилась - это итерация, в которой мы не знаем, какой размер списка будет повторяться (он может быть любой длины).

Вот мой код:

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(), который может показаться тем, что мне нужно - но я не могу понять, как включить его в этот код.

1 Ответ

0 голосов
/ 19 ноября 2018

Согласно документации 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
    }
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...