React Native - получить данные от Promise - PullRequest
0 голосов
/ 27 апреля 2018

в моем приложении 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);
    }
}

При вызове функции в других компонентах она просто возвращает обещание, а не токен. Есть ли возможность получить токен, но не обещание? Возможный подход состоял в том, чтобы использовать setState() для хранения токена в состоянии, но есть некоторые компоненты, такие как DrawerNavigator, которых нет в классе.

Спасибо!

1 Ответ

0 голосов
/ 27 апреля 2018

Вы забыли вернуть значение в функции 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);
    }
}
...