在Stripe中调用函数时,“逗号”语法是什么意思?

时间:2019-03-25 08:52:58

标签: node.js stripe-payments

我正在尝试在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 个答案:

答案 0 :(得分:3)

您所知道的是Promise,并且它们是当今进行异步的首选方式。 Stripe的API使用的是回调(也称为errback)样式,该样式早于Promises。

类似于

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

但是,Stripe的Node库也返回promise,因此您可以将示例转换为:

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

答案 1 :(得分:2)

逗号的含义与任何其他函数调用中的含义相同。它分隔参数。

第二个参数恰好是一个函数。

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);