Using Ionic2 storage, I have done the following in a custom provider, I can confirm that the key-value pairs are set and I can retrieve them individually:
this.storage.set('one', 1);
this.storage.set('two', 2);
this.storage.set('three', 3);
The problem is I have a function in one of my pages that needs to access all three of these values for an HTTP request, so I can get one of them like this:
this.storage.get('one').then((value) => {
// Preform http request sending value in POST data
});
But how do I get multiple key values all at once? Do I need to nest these calls, or is there a simpler way to access multiple keys in one call, so that I can do something like:
this.storage.get(['one', 'two', 'three']).then((values) => {
console.log(values.one); // I dunno, something like this
});
I used Promise.all for this purpose
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
});
You can simply do it as shown below.
this.storage.forEach( (value, key, index) => {
console.log("value", value);//store these values as you wish
console.log("key", key);
console.log("Index" index);
})
From Api Doc.
/**
* 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));
}
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With