首页 文章

React Native - 从Promise获取数据

提问于
浏览
0

在我的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不在类中 .

谢谢!

1 回答

  • 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);
        }
    }
    

相关问题