- Notifications
You must be signed in to change notification settings - Fork6
rt2zz/redux-action-buffer
Folders and files
| Name | Name | Last commit message | Last commit date | |
|---|---|---|---|---|
Repository files navigation
A middleware forredux that buffers all actions into a queue until a breaker condition is met, at which point the queue is released (i.e. actions are triggered).
One potential use case for this is to buffer any actions that occur before you are finished initializing your app. For example in conjunction withredux-persist.
importcreateActionBufferfrom'redux-action-buffer'letbreaker=BREAKER_ACTION_TYPEletactionBuffer=createActionBuffer(BREAKER_ACTION_TYPE,(err,data)=>{// callback fired immediately after releasing the buffer// data: { results: [actionReturnValue], queue: [rawAction] }})
In short:
createActionBuffer({ breaker: REHYDRATE, passthrough: [PERSIST] })
Full example:
import{REHYDRATE}from'redux-persist'importcreateActionBufferfrom'redux-action-buffer'import{createStore,compose}from'redux'letenhancer=compose(autoRehydrate(),applyMiddleware(createActionBuffer(REHYDRATE)//make sure to apply this after redux-thunk et al.))createStore(reducer,{},enhancer)
Delaying actions can be tricky because many actions depend on having a return value, and buffering breaks that. To help catch this scenario the return value from all buffered actions is a string indicating the action has been buffered.
actionBuffer(options, callback)
- options (string | function | object): Either a action type string that will break the buffer or a function that takes an action as the argument and returns true when the buffer should be broken. An object is interpreted as{ breaker: (string | function), passthrough: (Array) } wherebreaker functions as before andpassthrough is an array of actions not to buffer.
- callback (function): A function that is invoked after the buffer is broken.
About
Buffer Redux Actions
Resources
License
Uh oh!
There was an error while loading.Please reload this page.
Stars
Watchers
Forks
Packages0
Uh oh!
There was an error while loading.Please reload this page.
Contributors6
Uh oh!
There was an error while loading.Please reload this page.