Package Exports
- redux-timer
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (redux-timer) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
redux-timer 

SetInterval middleware for Redux used to dispatch an action or function periodically.
Installation
npm install redux-timer
Usage
import { createStore, applyMiddleware } from 'redux';
import timerMiddleware from 'redux-timer';
const store = createStore(reducers, applyMiddleware(timerMiddleware));
How to start a timer
To start a timer, you have to dispatch an action with type START_TIMER
with a payload of the following.
- name (required) -
String
representing the name of the timer. - action (required) -
String
matching an action type or aFunction
that you would like to periodically execute. - interval (required) - Timer interval in milliseconds
- runImmediately (optional) -
Boolean
to determine whether to fire the action immediately. This is set totrue
by default.
Using action
as an action type
import { START_TIMER } from 'redux-timer';
export const startTimer = () => ({
type: START_TIMER,
payload: {
name: 'exampleTimer',
action: 'SOME_ACTION_TICK',
interval: 1000,
runImmediately: true
}
});
Using action
as a Function
import { START_TIMER } from 'redux-timer';
export const exampleAction = () => async dispatch => {
dispatch({
type: START_TIMER,
payload: {
name: 'exampleTimer',
action: async () => {
try {
const response = await fetch('https://api.github.com');
const data = await response.json();
dispatch(setData(response.body.result));
} catch (e) {
// do something with this error
}
},
interval: 5000,
runImmediately: false
}
});
};
How to stop a timer
To stop a timer, you have to dispatch an action with type STOP_TIMER
with a payload of the following.
- name (required) -
String
representing the name of the timer
import { STOP_TIMER } from 'redux-timer';
export const stopTimer = () => ({
type: STOP_TIMER,
payload: {
name: 'exampleTimer'
}
});
TODO List
- Need to add tests
- Need to add CI/CD