使用 Ionic2 存储,我在自定义提供程序中完成了以下操作,我可以确认键值对已设置,并且可以单独检索它们:
this.storage.set('one', 1);
this.storage.set('two', 2);
this.storage.set('three', 3);
问题是我在我的一个页面中有一个函数,需要访问 HTTP 请求的所有这三个值,所以我可以像这样获得其中一个:
this.storage.get('one').then((value) => {
// Preform http request sending value in POST data
});
但是,如何一次获取多个键值呢?我是否需要嵌套这些调用,或者是否有更简单的方法在一次调用中访问多个密钥,以便我可以执行以下操作:
this.storage.get(['one', 'two', 'three']).then((values) => {
console.log(values.one); // I dunno, something like this
});
我为此目的使用了Promise.all
Promise.all([this.storage.get("email"), this.storage.get("username")]).then(values => {
console.log("email", values[0]);
console.log("username", values[1]);
// every other thing can happen here e.g call a method
});
您可以简单地执行以下操作。
this.storage.forEach( (value, key, index) => {
console.log("value", value);//store these values as you wish
console.log("key", key);
console.log("Index" index);
})
来自 API 文档。
/**
* Iterate through each key,value pair.
* @param iteratorCallback a callback of the form (value, key, iterationNumber)
* @return Promise that resolves when the iteration has finished.
*/
forEach(iteratorCallback: (value: any, key: string, iterationNumber: Number) => any): Promise<null> {
return this._dbPromise.then(db => db.iterate(iteratorCallback));
}