RxJS 5-based middleware for Redux. Compose and cancel async actions to create side effects and more.
https://redux-observable.js.org
This has peer dependencies of rxjs@5.x.x
and redux
, which will have to be installed as well.
npm install --save redux-observable
IMPORTANT: redux-observable does not add any of the RxJS operators to the Observable.prototype
so you will need to import the ones you use or import all of them in your entry file. Learn more.
Epics use RxJS v5 by default. You can use other stream libraries (other than RxJS v5) by using an Adapter.
You can write your own adapter too:
const adapter = {
input: input$ => /* convert Observable to your preferred stream library */,
output: output$ => /* convert your preferred stream back to an Observable */
};
See the existing adapters for examples. Keep in mind that while you still need RxJS v5 installed, redux-observable only pulls in the minimum amount of RxJS it needs internally--it doesn't import all of RxJS.
We publish a UMD build inside our npm package. You can use it via the unpkg CDN:
https://unpkg.com/redux-observable@latest/dist/redux-observable.min.js
To see redux-observable in action, here's a very simple JSBin to play around with:
- Using Raw HTML APIs
- Using React
- Using Angular v1
- Using Angular v2 (TODO)
- Using Ember (TODO)
Everyone is welcome on our Gitter channel!
Add the redux-observable spinning logo to your Slack channel! Slack Instructions