В моем приложении meteor я пытаюсь зарегистрировать пользователя на сервере, выполнить некоторую работу и добавить некоторые дополнительные свойства к объекту пользователя, переданному в onCreateUser, а затем перейти к приветствию 'страница, специально адаптированная для нового пользователя. Использование Метеор 7.0.1 и железо-маршрутизатор (последняя)Асинхронный вызов внутри Meteor.onCreateUser hook
Мой клиент код выглядит примерно так:
код// var userId = Meteor.registerUser(registrationOptions);
// Router.go('/welcome/'+userId);
сервера, как этот
// Meteor.onCreateUser(options, user){
// if (options.profile) user.profile = options.profile;
// a 3rd party method outside of Meteor
// callToOutsideMethod(Meteor.bindEnvironment(function(e, res){
// user.results = res;
// // do other stuff
// user.foo = blah;
// user.bar = baz;
// return user;
// }, function(err){ console.log(err); });
Когда я вернуть объект пользователя, я 'm ожидаем, что метеорит создаст запись, а затем зарегистрирует нового пользователя в ...
Но случается так, что экран становится все искаженным на секунду, а затем мы переходим к новому URL/приветствую/the_new_user_id '...
Но это вызывает ошибку в скрипте, где я пытаюсь получить доступ к чему-либо, кроме user_id. Глядя на Mongo cli, ни одно из новых свойств не было добавлено, даже «имя пользователя» и «токены входа» и т. Д. Не появляются у нового пользователя. И у недавно созданного пользователя есть ТОЛЬКО _id и ничего больше ... очень странно.
Любые идеи о том, что может вызвать это странное поведение?
Пожалуйста, уточните название вашего вопроса, чтобы другие могли его найти, например. «Асинхронный вызов внутри Meteor.onCreateUser». Вы также должны добавить несколько тегов, попробуйте с 'account' /' users' и 'async' /' asynchronous'. – dalgard