React native - AsyncStorage,等待和同步
React native - AsyncStorage, wait and sync
我正在使用 AsyncStorage,但我认为我没有正确使用...
文件functions.js
import { AsyncStorage } from 'react-native';
const Functions = {
async storeItem(key, item) {
try {
AsyncStorage.setItem()
var jsonOfItem = await AsyncStorage.setItem(key, JSON.stringify(item));
return jsonOfItem;
} catch (error) {
console.warn(error.message);
}
},
async retrieveItem(key) {
try {
const retrievedItem = await AsyncStorage.getItem(key);
const item = JSON.parse(retrievedItem);
return item;
} catch (error) {
console.warn(error.message);
}
}
}
export default Functions;
文件home.js
从 'Constants/functions' 导入函数;
export default class Home extends Component {
constructor(props) {
super(props);
product = Functions.retrieveItem('products');
console.warn(product);
}
}
console.warn(产品)returned
{"_40":0,_65":1,"_55":null,"_72":null}
我认为发生这种情况是因为我在处理对象之前就收到了对象。因为如果我在 retrieveItem 函数的 return 之前放置一个 console.warn 它会很好地显示对象...
是一个 Promise 所以...你需要使用
Functions.retrieveItem('products').then((res) => { //do something with res });
我正在使用 AsyncStorage,但我认为我没有正确使用...
文件functions.js
import { AsyncStorage } from 'react-native';
const Functions = {
async storeItem(key, item) {
try {
AsyncStorage.setItem()
var jsonOfItem = await AsyncStorage.setItem(key, JSON.stringify(item));
return jsonOfItem;
} catch (error) {
console.warn(error.message);
}
},
async retrieveItem(key) {
try {
const retrievedItem = await AsyncStorage.getItem(key);
const item = JSON.parse(retrievedItem);
return item;
} catch (error) {
console.warn(error.message);
}
}
}
export default Functions;
文件home.js
从 'Constants/functions' 导入函数;
export default class Home extends Component {
constructor(props) {
super(props);
product = Functions.retrieveItem('products');
console.warn(product);
}
}
console.warn(产品)returned
{"_40":0,_65":1,"_55":null,"_72":null}
我认为发生这种情况是因为我在处理对象之前就收到了对象。因为如果我在 retrieveItem 函数的 return 之前放置一个 console.warn 它会很好地显示对象...
是一个 Promise 所以...你需要使用
Functions.retrieveItem('products').then((res) => { //do something with res });