Javascript 余烬简单身份验证延迟,直到用户加载

Javascript 余烬简单身份验证延迟,直到用户加载,javascript,ember.js,ember-cli,ember-simple-auth,Javascript,Ember.js,Ember Cli,Ember Simple Auth,我使用的是ember cli simple auth,并扩展了会话对象以包括从/me端点检索的currentUser。但是,当重新加载页面并登录用户时,会有一个延迟,直到加载登录的用户信息。我想推迟应用程序准备就绪,直到检索到用户 我在一个自定义会话中设置了这个初始值设定项 import Session from 'simple-auth/session'; export default { name: 'custom-session', initialize: function(con

我使用的是ember cli simple auth,并扩展了会话对象以包括从
/me
端点检索的currentUser。但是,当重新加载页面并登录用户时,会有一个延迟,直到加载登录的用户信息。我想推迟应用程序准备就绪,直到检索到用户

我在一个
自定义会话中设置了这个
初始值设定项

import Session from 'simple-auth/session';
export default {
  name: 'custom-session',
  initialize: function(container, app) {
    var _app = app;
    var SessionWithCurrentUser = Session.extend({
        currentUser: function() {
            var _this = this;
            return this.container.lookup('store:main').find('me', '').then(function(data){
                _app.advanceReadiness();
                _this.set('currentUser', data);
            }, function(data){
                console.log('failed');
                return data;
            });
        }.property()
    });

    container.register('session:withCurrentUser', SessionWithCurrentUser);
    app.deferReadiness();
  }
};
似乎从未调用过
AdvanceRadiness
,因此应用程序从未加载。我对灰烬是一个新手,我的头脑仍然在容器周围,所以我不确定这是如何工作的。我做错了什么

更新 根据建议的答案,我将其更改为此,但这会导致错误
undefined不是调用
session.currentUser()
的函数

堆栈跟踪
您从未在初始值设定项中调用
currentUser
方法。你需要把它改成

var session = SessionWithCurrentUser.create()
container.register('session:withCurrentUser', session, { instantiate: false });
app.deferReadiness();
session.currentUser();

当然,您必须调用
app.advanceReadiness()
如果无法加载用户,则应用程序将无法启动。

请查看我的更新。这没有达到预期效果请为异常添加堆栈跟踪,就像我在更新调用
session.currentUser()
OK的行中所说的那样,您需要进行调试-没有什么会立即引起我的注意。另外,您不应该使用
\u this.container
,而应该只使用
container
。也不需要定义附加变量
\u app
。感谢您的帮助。我完全不知道从哪里开始调试这个
Uncaught TypeError: undefined is not a function app/initializers/custom-session.js:28
__exports__.default.initialize app/initializers/custom-session.js:28
(anonymous function) vendor.js:14807
visit vendor.js:15216
visit vendor.js:15214
visit vendor.js:15214
visit vendor.js:15214
DAG.topsort vendor.js:15312
Namespace.extend.runInitializers vendor.js:14804
Namespace.extend._initialize vendor.js:14689
Backburner.run vendor.js:12247
apply vendor.js:30430
run vendor.js:29048
runInitialize vendor.js:14488
fire vendor.js:3184
self.fireWith vendor.js:3296
jQuery.extend.ready vendor.js:3502
completed
var session = SessionWithCurrentUser.create()
container.register('session:withCurrentUser', session, { instantiate: false });
app.deferReadiness();
session.currentUser();