我在React native中使用asyncstorage,我遵循了FB的指南。但我的诺言没有挽救。
componentDidMount() {
async function getitem() {
try {
const retrievedItem = await AsyncStorage.getItem("user");
console.log(retrievedItem);
const item = JSON.parse(retrievedItem);
console.log(item);
return item;
} catch (error) {
console.log(error.message);
}
return;
}
getitem();
}
我的控制台就像..这个...
{"_40":0,"_65":0,"_55":null,"_72":null} AddUser.js:33 {_40: 0, _65:
0,
_55: null, _72: null}
答案 0 :(得分:1)
您应使用承诺模式退货。
尝试这样。
async function getitem() {
try {
const retrievedItem = await AsyncStorage.getItem("user");
const item = JSON.parse(retrievedItem);
return Promise.resolve(item);
} catch (error) {
return Promise.reject(error)
}
// return; <-- don't need this!
}
而且,我建议下面使用更好的反应编码模式。
componentDidMount() {
this.getItem("YOUR_KEY").then(response => {
// do stuff using response ..
});
}
async getItem(key) {
//.. do stuff
}