Как вызвать асинхронный метод из собственных обратных вызовов Meteor?

Мы просто провели несколько часов, читая ТАК с такими ответами, какМетеор: вызов асинхронной функции внутри Meteor.method и возврат результата

К сожалению, я до сих пор неуправлять пользовательскими волокнами или фьючерсами в этом отношении.

Я пытаюсь сделать что-то довольно простое (я думаю!).

При создании пользователя добавьте переменную к объекту пользователя на основе результата асинхронного метода. Так что представьте, если вы хотите, чтобы мой асинхронный метод вызывался на стороннем сервере БД с именем BANK, для возврата которого может потребоваться несколько секунд.

Accounts.onCreateUser(function(options,user){

var Fiber = Npm.require("fibers");

Fiber(function() { 
    BANK.getBalance(function(err, theBalance) {

        if (err) return console.log(err);

        _.extend(user,{
            balance: theBalance;
        });

    });
}).run();

return user;

});

Итак, что происходит в приведенном выше примере, это то, что метод BANK вызывается, но к тому времени, когда он возвращает код, код уже перемещен, и _.extend никогда не вызывается.

Я попытался сделать обратный звонок внутри Fiber, что только ухудшило ситуацию: он никогда не вернул пользователя. Ну, это было сделано, но на 3 секунды уже поздно, так что к тому времени все вниз по течению выручало.

Спасибо за любую помощь!

Ответы на вопрос(4)

Ваш ответ на вопрос