Да, мы называем их создателями действий. Допустим, вы используете избыточный поток для побочных эффектов, поэтому getUser
будет создателем действий, который сначала запросит хранилище избыточных данных, чтобы узнать, есть ли доступные данные, если нет, то получит их с сервера и сохранит в хранилище избыточных данных, например. this:
function getUser(id) {
// getState is a function that gives us access to entire redux store
return (dispatch, getState) => {
try {
let user = getState().users.find(x => x.id === id) || null;
if (user) {
dispatch({ type: 'GET_USER', payload: user })
return;
}
user = fetchUserFromServer(id);
dispatch({ type: 'GET_USER', payload: user })
} catch(error) {
// handle error here
}
}
}
Теперь, когда в следующий раз будет вызван getUser
, в этом хранилище будут данные для этого пользователя и будет исключен вызов на сервер.
Надеюсь, это поможет: )