Skip to content

Instantly share code, notes, and snippets.

@designdevy
Forked from jakejrichards/effects.ts
Created August 3, 2020 06:08
Show Gist options
  • Save designdevy/4a9c29cc4359eaec3f0484446b17c479 to your computer and use it in GitHub Desktop.
Save designdevy/4a9c29cc4359eaec3f0484446b17c479 to your computer and use it in GitHub Desktop.
import { ThunkAction } from 'redux-thunk';
import { ApplicationState, ApplicationAction } from './types';
import { loadUsersRequest, loadUsersSuccess, loadUsersError } from './actions';
import * as userService from '../services/userService';
type Effect = ThunkAction<any, ApplicationState, any, ApplicationAction>;
export const loadUsers = (): Effect => (dispatch, getState) => {
dispatch(loadUsersRequest());
// assume userService.loadUsers returns a Promise<User[]>
return userService.loadUsers()
.then(users => dispatch(loadUsersSuccess(users)))
.catch(() => dispatch(loadUsersError()));
};
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment