2014-10-22 3 views
0

В моем приложении Node.js я пытаюсь использовать apply для вызова функции в библиотеке Stripe, поскольку параметр токена доступа является необязательным. Тем не менее, я получаю ошибку типа.Использование apply на библиотечных функциях Stripe Node.js

var args = [data]; 
if(accessToken) { 
    args.push(accessToken); 
} 
args.push(function(err, customer) { 
    ... 
}); 
stripe.customers.create.apply(this, args); 
Uncaught TypeError: Cannot call method 'createUrlData' of undefined 
    at /home/codio/workspace/node_modules/stripe/lib/StripeMethod.js:33:24 

Я считаю, что это результат использования строгого режима, но дайте мне знать, если это ожидаемое поведение. Я использую версию 2.8.0 библиотеки Stripe Node.js.

+0

Вы, наверное, не нужно прыгать, хотя эти обручи - это безопасно, просто передать неопределенный, чтобы второй параметр. 'stripe.customers.create (data, accessToken, function() {...})' – josh3736

ответ

0

Вероятно, ваш this не определен, а apply устанавливает контекст (то, что this есть) в вызываемой функции. В нормальных условиях, вызываемая функция-х this будет stripe.customers, поэтому попробуйте:

stripe.customers.create.apply(stripe.customers, args); 
Смежные вопросы