Привет! Вроде просто все:
const getAccounts = function* getAccounts() {
while (true) {
const request = yield take(GET_ACCOUNTS);
const userID = request.data.userID;
try {
response = yield call(AccountsService.getAccounts, userID); // тут асинхронный вызов
yield put({ type: ACCOUNTS_RECEIVED, response });
} catch (error) {
return false;
}
}
}
Редьюсерexport const accounts = (state = INITIAL_STATE, action) => {
switch (action.type) {
case ACCOUNTS_RECEIVED:
console.log(action); // тут action.response - undefined
return { ...state, accounts: action.response.Items[0].accounts };
case ADD_ACCOUNT:
return { ...state, accounts: [ ...state.accounts, action.newAccount ] };
default:
return state;
}
};
Сага не ждет, пока асинхронная функция вернет значение, сразу диспетчит ACCOUNTS_RECEIVED с пустым response. Почему?
Спасибо.