app/components/services/storageService/StorageService.js:
import {AsyncStorage} from 'react-native';
export default class StorageService {
static getAsyncStorageItem(key) {
return new Promise((resolve, reject) => {
AsyncStorage
.getItem(key)
.then(item => {
resolve(JSON.parse(item));
})
})
}
static setAsyncStorageItem(key, data) {
return new Promise((resolve, reject) => {
AsyncStorage
.setItem(key, JSON.stringify(data))
.then(() => {
resolve();
})
})
}
// Sets an AsyncStorage item only if it doesn't exist yet
static setAsyncStorageItemIfNull(item, value) {
AsyncStorage
.getItem(item)
.then(currentValue => {
if (currentValue === null) {
AsyncStorage
.setItem(item, JSON.stringify(value));
}
});
}
}
example.js:
import StorageService from '../components/services/storageService/StorageService';
export default class Example {
static async storageExample() {
const value1 = 3;
const value2 = 'test';
await StorageService.setAsyncStorageItemIfNull('key1', value1);
await StorageService.setAsyncStorageItem('key2', value2);
const result = await StorageService.getAsyncStorageItem('key2');
};
}