Skip to content

Instantly share code, notes, and snippets.

@iammerrick
Created March 11, 2016 21:18
Show Gist options
  • Save iammerrick/1ce87988e4448b540e14 to your computer and use it in GitHub Desktop.
Save iammerrick/1ce87988e4448b540e14 to your computer and use it in GitHub Desktop.
export const load = (id) => {
load.buffer = load.buffer || [];
load.buffer.push(id);
return (dispatch, getState) => {
if (load.flush) clearTimeout(load.flush);
load.flush = setTimeout(() => {
}, 0);
};
};
@statianzo
Copy link

const bufferWrap = (creator) => {
  const wrapper = (id) => {
    wrapper.buffer.push(id);
    return (dispatch, getState) => {
      clearTimeout(wrapper.timeout);
      wrapper.timeout = setTimeout(() => {
        dispatch(loadUsers(wrapper.buffer))
        wrapper.buffer = [];
      })
    }
    wrapper.buffer = [];
    return wrapper;
  };
}

const loadUsers = (ids) => {...}
const loadUser = bufferWrap(loadUsers);

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment