【发布时间】:2016-08-08 10:41:49
【问题描述】:
我正在尝试启动一个基本的 ionic2 应用程序,并且想知道我的初始应用程序加载时间是否有问题。如果用户未通过身份验证,我想做的是将起始页面设置为登录页面。
我最初将 rootpage 设置为主页,然后当异步调用从 localstorage 返回时,如果用户未经身份验证,我会将 rootpage 重置为登录页面。但是,这会导致他们看到一个页面然后被发送到另一个页面的地方闪烁。
看来我想做的是在显示任何屏幕之前等待本地存储调用。
我的问题是:就目前的代码而言,在设置根页面之前是否会出现平台就绪触发的错误情况,从而导致某种问题?我应该如何在 Ionic 2 和 Angular 2 中处理这种情况?我应该使 get localStorage 调用同步,还是应该将它填充到另一个事件或方法中,这是 Angular 2 中应用程序或页面生命周期的一部分?
我应该使用某种 observable 还是 await 语法?
export class MyApp {
rootPage: any;
local: Storage = new Storage(LocalStorage);
constructor(platform: Platform) {
this.local.get('user').then(user => {
if (user) {
this.rootPage = TabsPage;
} else {
this.rootPage = LoginPage;
}
});
platform.ready().then(() => {
// Will this ever fire before the rootpage is set?
StatusBar.styleDefault();
});
}
}
【问题讨论】: