Сбалансировано - не получен ответ от marketplace.customers.create с использованием библиотеки узлов

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

    balanced.configure('ak-test-2dE1FyvrskNw4o7CiAsGvYOgD7aPSb0ww');    
    var customer = balanced.marketplace.customers.create({
         email: userAccount.emails[0].address,
         name: userAccount.username
    });
    console.log('customer' + customer.ID);

Возвращает клиентнеопределенный

К моей консоли.

Любая помощь будет оценена по достоинству!


person NickL    schedule 08.03.2014    source источник


Ответы (1)


balanced.marketplace.customers.create выполняет сетевой вызов в фоновом режиме и возвращает обещание, что означает, что для доступа к базовым данным ресурса вам придется использовать .then

var customer = balanced.marketplace.customers.create(...);
customer.then(function(c) {
    console.log(c.href);
});

Причина, по которой это может сбить вас с толку, заключается в том, что обещание, используемое библиотекой сбалансированных узлов, «перегружено» в том смысле, что вы можете связывать действия вместе. Вам нужно использовать .then только тогда, когда вы хотите получить доступ к результату обещания. Это означает, что вы можете сделать что-то вроде следующего:

var card = balanced.get('/cards/CCasdfadsf'); // this is a network call
var customer = balanced.marketplace.customers.create(); // this is a network call that will go in parallel
card.associate_to_customer(customer).debit(5000); // using promises these will complete once all the previous request are complete
customer.then(function (c) {
    console.log(c.href); // since we need to access the data (href) on the customer, we have to wait for the non blocking requests to complete and then the data will be ready. 
});
person Matthew FL    schedule 09.03.2014