react-native - React Native - 从 Promise 获取数据
问题描述
在我的 React Native 应用程序中,我从 API 接收到一个令牌。每次应用程序向服务器发送请求时,都需要此令牌。我将令牌保存在 AsyncStorage 中:
export const onSignIn = (value) => AsyncStorage.setItem('USER_TOKEN', value);
在应用程序的许多不同部分中,我需要这个令牌,因此我想使用一个函数,从令牌中提取信息:
export const getTokenInfo = async () => {
try{
const value = await AsyncStorage.getItem('USER_TOKEN')
.then((res) => {
const jsonData = jwtDecode(res);
return jsonData;
})
}
catch(e){
console.log('caught error', e);
}
}
在其他组件中调用该函数时,它只返回 Promise 本身而不是令牌。是否有可能获得令牌,但不能获得承诺?一种可能的方法是使用setState()
将令牌存储在状态中,但是有一些组件(例如 DrawerNavigator)不在类中。
谢谢!
解决方案
您忘记返回 getTokeninfo 函数的值
export const getTokenInfo = async () => {
try{
const value = await AsyncStorage.getItem('USER_TOKEN')
.then((res) => {
const jsonData = jwtDecode(res);
return jsonData;
})
return value // <---- you forgot this line
}
catch(e){
console.log('caught error', e);
}
}
推荐阅读
- javascript - 使用 localStorage 返回最后一次搜索
- go - 如何在现有的 ClientConn 上添加 clientOption?
- visual-studio-code - VS Code如何配置切换分支时自动关闭已删除的文件?
- java - 我的循环有问题,想以正确的选择终止(JAVA)
- json - 使用 jq 过滤来自数学家谱项目的数据集
- swiftui - 如何设置 DatePicker 的 textField 部分的样式
- c - 如何从客户端向服务器发送时间
- javascript - 对象数组,javascript。- JSON
- python - 从谷歌云存储桶访问图像数据作为 ML 数据集
- json - 如何直接将图像存储到 Firebase 中,无需编码(或最简单的方法)并且无需创建可以这样做的应用程序?