在我的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不在类中。
谢谢!
答案 0 :(得分:0)
您忘记返回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);
}
}