Estou usando o Meteor, o que preciso fazer para aguardar o retorno de uma promessa de uma chamada de API?

if (Meteor.isClient) {

  Template.hello.events({
    'click input': function () {

      //create a new customer
      Meteor.call('createCustomer', function (error, result) { 
        console.log("Error: " + error + "  Result: " + result); } );
    }
  });
}

if (Meteor.isServer) {
  Meteor.methods({
    createCustomer: function () {
      try {
      balanced.configure('MyBalancedPaymentsTestKey');
      var customer = Meteor._wrapAsync(balanced.marketplace.customers.create());
      var callCustomer = customer();
      var returnThis = console.log(JSON.stringify(callCustomer, false, 4));
      return returnThis;
    } catch (e) {
      console.log(e);
      var caughtFault = JSON.stringify(e, false, 4);
    }
    return caughtFault;
    }
  });
}

E acabei de usar o hello world padrão sem a linha de saudações.

<head>
  <title>testCase</title>
</head>

<body>
  {{> hello}}
</body>

<template name="hello">
  <h1>Hello World!</h1>
  <input type="button" value="Click" />
</template>

No lado do cliente, o log é impresso

Error: undefined Result: {}

No lado do servidor, o log é impresso

[TypeError: Object [object Promise] has no method 'apply']

Alguma idéia de como posso esperar por essa promessa em vez de retornar o resultado em branco?

questionAnswers(3)

yourAnswerToTheQuestion