Start async tasks when you want. Get them back as you want.
In standard co flow,
yields dispatch async jobs and issue requests for the resulting data at the same time. This greatly limits your ability to control the async flow.
Co-Control aims to solve this problem by providing a simple api that
starts async jobs and later
get the resulting data. Because only the
get call needs to be yielded you are able to kick of complex routine flows with little work.
Here is a very simple perf suite to dispay why working the co-control way can make things faster for you.
node --harmony ./speed-run.js setTimeout
npm install --save co-control
var thunkify = ;var co = ;var CoControl = ;var slow =;var fast =;;
- key the label used to later
- yieldable any of the co supported yieldables
Starts an async opperation and holds the result until you need it.
var thunkify = ;var yieldable = ;controlstart"key" yieldable;
- key name of a
start'd async opperation.
Returns the result of the async opperation. If the async opperation errored, it will throw that error.
var value = control;
- keys an array of names of
start'd async opperations.
Returns a key value map of the results of all the requested opperations. If any of the async opperations errored, it will throw that error.
var obj = controlall"a" "b";