Экспортировать константу, полученную из асинхронной функции в ReactJS?

Я новичок в Ruby и столкнулся с этой проблемой.

Я хочу определить константу, которую я могу использовать в любом месте своего кода. Это токен (строка) для доступа к API.

Дело в том, что я получаю это от асинхронной функции.

const fetchApiToken = async () => {

  return new Promise((resolve, reject) => {

    const config = {
      method: 'post',
      url: API_URL + 'v2/auth/token/',
      data: {
        api_key:  API_KEY
      },
      headers: {
        'Content-Type': 'application/json',
        'X-Requested-With': 'XMLHttpRequest' //was getting 406 without this
      }
    }

    axios(config)
    .then(resp => resp.data.token)
    .then(function(token){
      resolve(token);
    })
    .catch(err => {
      reject(err.message);
    });
  })
}

Использование этого будет работать, но будет экспортировать обещание:

    export const USER_TOKEN = fetchApiToken(); //is a promise

Что неудобно, так как мне нужно будет использовать USER_TOKEN.then((function(token){}) везде в моем коде.

Я искал в Интернете (например, эту тему), но не могу найти хороший способ справиться с этим.

Как бы вы поступили? Мне просто нужно экспортировать токен, который представляет собой строку; но я получаю это от асинхронной функции.

Спасибо !


person gordie    schedule 26.12.2020    source источник