Skip to content

Instantly share code, notes, and snippets.

@talkol
Last active February 22, 2016 13:02
Show Gist options
  • Save talkol/2fdf6b7f4ae4dc7aac63 to your computer and use it in GitHub Desktop.
Save talkol/2fdf6b7f4ae4dc7aac63 to your computer and use it in GitHub Desktop.
// dependency - you need to finish load rooms before you load reservations
let roomsLoadPromise = undefined;
export function loadRooms() {
return async function (dispatch, getState) {
if (!roomsLoadPromise) {
roomsLoadPromise = dispatch(_loadRooms());
}
await roomsLoadPromise;
};
}
function _loadRooms() {
return async function (dispatch, getState) {
dispatch({type: types.ROOMS_LOADING});
const rooms = await hotelService.loadRooms();
dispatch({type: types.ROOMS_LOADED, rooms: rooms});
};
}
export function loadReservations() {
return async function (dispatch, getState) {
await dispatch(loadRooms());
dispatch({type: types.RESERVATIONS_LOADING});
const reservations = await hotelService.loadReservations();
dispatch({type: types.RESERVATIONS_LOADED, reservations: reservations});
};
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment