Вернуть объект вместо нуля в аксиомах - PullRequest
3 голосов
/ 13 июля 2020

Вопрос: Почему авторизация имеет значение Object, а не null? Когда функция USER_TOKEN.get () возвращает значение null.

У меня имя функции callApi, как это

export async function callApi(endpoint, method = "get", body) {
  try {
    const res = await axios({
      method: method,
      url: endpoint,
      data: body,
      headers: {
        Authorization: USER_TOKEN.get()
      }
    });
    if (res && res.data && res.data.success === true) {
      return res.data.payload;
    }
    return Promise.reject(Error("Call api failed"));
  } catch (error) {
    throw error;
  }
}

Это моя функция USER_TOKEN. И USER_TOKEN.get () просто получает значение из элемента locaStorage 'userToken'

export const USER_TOKEN = {
  get: () => localStorage.getItem('userToken'),
  set: (newValue) => {
    localStorage.setItem('userToken', `Bearer ${newValue}`);
  },
  delete: () => localStorage.removeItem('userToken'),
};

В результате я получил изображение ниже введите здесь описание изображения

Мои ожидания - это элемент заголовка. Авторизация имеет значение null вместо Object, как на изображении выше.

Пожалуйста, помогите мне объяснить эту проблему. Или вы можете дать какое-нибудь ключевое слово для исследования? Спасибо!

1 Ответ

1 голос
/ 13 июля 2020

Кажется, Ax ios выполняет некоторые проверки объектов для каждого заголовка и некоторые причудливые, безопасные для нуля строки, которые преобразуют ваш null в [object Object].

Я бы сказал, что лучше всего do - это программное добавление заголовка, например

const authorization = USER_TOKEN.get()
const headers = authorization ? { authorization } : {}
const res = axios({
  method,
  headers,
  url: endpoint,
  // etc
})
...