Неожиданный результат избыточного действия - PullRequest
0 голосов
/ 18 апреля 2019

Я был нанят, чтобы сделать несколько функций и исправлений в существующем приложении. Есть несколько строк кода, которые меня смущают.

Действие, отправленное в компоненте:

export function getCategory() {
  const request = axios({
    method: "get",
    url: url,
  }).then(response => {
    return {
      data: response.data.results,
    };
  })
  console.log(1, request)
  return {
    type: types.GET_CATEGORY,
    payload: request,
  };
}

и редуктор:

export default function(state = initialState, action) {
  switch (action.type) {
    case GET_CATEGORY:
      console.log(2, action.payload)
      return {
        ...state,
        category: action.payload.data
      };
    ...

Я ожидал, что нерешенное обещание будет и в console.log 1, и в 2.
На самом деле console.log 1 печатает решенное обещание, а console.log 2 печатает данные, полученные с сервера.

image

Redux работает синхронно, и в функции getCategory отсутствуют ключевые слова async / await. Почему редуктор получает правильные данные, а не неразрешенное обещание?

Сведения о приложении: реактивный, редукционный, только с промежуточным программным обеспечением.
(пожалуйста, не дайте мне совета по поводу бандитов, саг и т. д. Это не мой код)

EDIT

Проблема решена, другой программист добавил промежуточное программное обеспечение RedEx-Promise, а я не был добавлен в обзор ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...