Элементы массива не помещаются в async.queue

У меня есть множество клиентов, из которых я создал очередь для оплаты каждого из них. Он взимает плату с первого клиента, но не помещает следующего в очередь. Что мне не хватает, пожалуйста? Ниже мой код.

let q = async.queue(async(customer, callback) =>{
   let r =  await stripe.charges.create({
            amount: customer.amount ,
            currency: "usd",
            customer: customer.customerId,
            source: customer.token
        }, {
            idempotency_key: customer.uuid
        });  
 },1)
 async.forEach(customers, async(customer, callback)=> {
   q.push(customer, function(err){
        if (err){
            console.info(err,"errr========= = ")
        }
    })
 }) 
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
0
0
69
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Здесь вы смешиваете async / await с обратными вызовами и никогда не вызываете обратный вызов async.forEach().

let q = async.queue((customer, callback) => {
  stripe.charges.create({
    amount: customer.amount ,
    currency: "usd",
    customer: customer.customerId,
    source: customer.token
  }, {
    idempotency_key: customer.uuid
  }, callback);  
},1)

customers.forEach((customer) => {
  q.push(customer, (err, cus) => {
    if (err){
      console.info(err,"errr========= = ")
    }

    // Do whatever
  })
});

Вы также хотите убедиться, что customer.token является идентификатором карты, а не идентификатором токена; если это идентификатор токена, который вы использовали для создания клиента, он вам не нужен, а если это новый токен карты, вам нужно либо сначала обновить клиента, либо добавить его в клиента.

Другие вопросы по теме