Что означает синтаксис «запятая» при вызове функции в чередовании? - PullRequest
1 голос
/ 25 марта 2019

Я пытаюсь создать нового клиента в Stripe.Я успешен, но запутался в том, как их документация стилизирует вызов функции.

Кажется, я не могу найти какую-либо информацию в их официальных документах.https://stripe.com/docs/api/customers/create?lang=node

Например:

stripe.customers.create({
  description: 'Customer for jenny.rosen@example.com',
  source: "tok_visa" // obtained with Stripe.js
}, function(err, customer) {
  // asynchronously called
});

Я предполагаю, что это похоже на ".then ((err, customer) => {} ', но не может использовать функциювызовите с этим синтаксисом.

Любое объяснение будет полезно!

Ответы [ 2 ]

3 голосов
/ 25 марта 2019

То, что вы знаете, это Обещания, и сегодня они являются предпочтительным способом выполнения асинхронных операций. API Stripe использует стиль обратного вызова (также называемый errback), который предшествовал Promises.

Это похоже на

.then(customer => ...).catch(err => ...)

Однако библиотека узлов Stripe также возвращает обещания, поэтому вы можете преобразовать свой пример в:

stripe.customers.create({
  description: 'Customer for jenny.rosen@example.com',
  source: "tok_visa" // obtained with Stripe.js
})
.then(customer => ...)
.catch(err => ...);
2 голосов
/ 25 марта 2019

Запятая означает то же, что и при любом другом вызове функции. Он разделяет аргументы.

Второй аргумент просто является функцией.

var first_argument = {
  description: 'Customer for jenny.rosen@example.com',
  source: "tok_visa" // obtained with Stripe.js
};

var second_argument = function(err, customer) {
  // asynchronously called
};

stripe.customers.create(first_argument, second_argument);
...