reactjs - 当我尝试访问从异步方法返回的值时,为什么会得到一个未定义的输出
问题描述
我有以下方法,它在名为 localStorage 的不同文件中返回一个具有 3 个字段的对象:
const getUserProfileData = async () => {
try {
await AsyncStorage.getItem(CONSTANTS.USER_PROFILE).then((item) => {
let retrievedProfile = JSON.parse(item);
return retrievedProfile;
});
} catch (e) {
throw e;
}
};
这是我的文件 profile.js:
useEffect(() => {
const retrieveProfileData = async () => {
let retProfile = await localStorage.getUserProfileData();
console.log("check what: ",retProfile);
};
retrieveProfileData();
}, []);
在使用效果中,当我尝试注销结果时,我得到以下输出:
check what: undefined
我已经阅读了其他类似问题的论坛,但我似乎没有注意到我哪里出错了?
解决方案
const getUserProfileData = async () => {
return AsyncStorage.getItem(CONSTANTS.USER_PROFILE);
};
useEffect(() => {
const retrieveProfileData = async () => {
try {
let retProfile = JSON.parse(await localStorage.getUserProfileData());
console.log("check what: ",retProfile);
} catch (error) {
// handle error
}
};
retrieveProfileData();
}, []);
推荐阅读
- php - 如何将默认格式日期 01-01-1970 更改为 null (PHP)?
- c# - 等待其他方法完成更新列表,然后执行其他方法消耗公共属性
- ibm-cloud - IBM Watson IOT 平台是否接受文本/字符串值?
- autodesk-forge - 查看器 v7.37 属性面板 setProperties() 不起作用
- dax - Power Pivot - 在组内聚合以确定最大值
- jenkins - 如何在 Jenkins 声明式管道中并行运行有和没有矩阵的阶段?
- javascript - Javascript - 管理服务器上客户端的时间戳
- r - 使用 R 下载没有下载链接的文件
- python - 在python中检索多个括号内的文本
- jquery - ApexCharts - 使用 appendSeries 添加多个系列不起作用