Я был нанят, чтобы сделать несколько функций и исправлений в существующем приложении. Есть несколько строк кода, которые меня смущают.
Действие, отправленное в компоненте:
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 печатает данные, полученные с сервера.
Redux работает синхронно, и в функции getCategory отсутствуют ключевые слова async / await. Почему редуктор получает правильные данные, а не неразрешенное обещание?
Сведения о приложении: реактивный, редукционный, только с промежуточным программным обеспечением.
(пожалуйста, не дайте мне совета по поводу бандитов, саг и т. д. Это не мой код)
EDIT
Проблема решена, другой программист добавил промежуточное программное обеспечение RedEx-Promise, а я не был добавлен в обзор ...