【发布时间】:2018-07-23 14:55:27
【问题描述】:
由于LocalStorage 的速度慢,我想使用Providers 进行数据共享。那么您能否告诉我,由于 Ionic 3 移动应用程序中的这种方法,我是否必须面对任何问题?
注意:提供者是singleton
这样声明:
project.ts
@Injectable()
export class ProjectProvider {
project: Project
constructor((){}
}
在我需要时在任何其他页面上使用:
home.ts
constructor(private projectProvider: ProjectProvider){}
ionViewDidEnter() {
this.projectProvider.project = val;//after this I can use this anywhere
}
我用上面的方法代替了这个:
const project: Project = await this.storage.get('project');
在这里你可以看到我必须等到它检索到。这是我的应用程序的一个问题,因为我的客户需要开发一个页面上几乎没有加载器图标的应用程序。那么我是否必须面对这种方法的任何问题?
【问题讨论】:
-
为什么不在 Storage 调用中使用 promise?而你使用 SQLLite 代替 localstorage,对吗?
-
自从我来自
C#世界以来,我真的很喜欢这种模式:)。以及我需要立即使用该数据的用例。 @Pterrat 是的SQLLite. -
好的,我认为您的代码是正确的。你不会有任何问题。也许你可以提高你的 ProjetProvider 关于初始化项目的价值
-
我今天实现了完全相同的模式,并且我也意识到任何意想不到的问题。即使有承诺,localstorage 的性能也太差了。
标签: angular typescript ionic3 inject