https://github.com/redux-saga/redux-saga
As I said, I'm on the fence. Redux itself is for programs that get large enough, and interconnected enough, that you want a central place to manage global state. You add in sagas when you want to grow that to include all side effects.
It is really cool to use its debugger and look at every message that got passed, and how that changes the global state. But adding in the message passing system is really heavy: you have to connect the component to it, AND create an action for both the request AND the response, AND put the code in a separate "reducer", AND then the whole saga middleware magic, AND several other things.
So... keep it in the back of your mind. If nothing else, it's pretty cool to use generators for something.
Generators are also really nice for writing parsers and other tree-walking operations. Rather than passing in visitors or producing an entire tree, it's very easy to yield an intermediate result and then keep going. I don't see it used all that much (I believe in part because people don't write all that many parsers), but they're actually a pretty good way to get a handle on generator writing.