Redux-saga: Difference between revisions
Jump to navigation
Jump to search
No edit summary |
|||
Line 29: | Line 29: | ||
= Using co = | = Using co = | ||
co runs the generator and the then holds the result. | |||
<syntaxhighlight lang="javascript"> | |||
var wrapped = co.wrap(delayGenerator); | var wrapped = co.wrap(delayGenerator); | ||
wrapped().then( v=>console.log("Got a value:", v)); | wrapped().then( v=>console.log("Got a value:", v)); | ||
Line 35: | Line 39: | ||
// Console Step 3 | // Console Step 3 | ||
// Got a value: 6 | // Got a value: 6 | ||
</syntaxhighlight> |
Revision as of 05:16, 28 May 2020
About
- Manages side-effects
- Depends on ES6 and Yield
- Consumes and emits actions
- Works without redux
Generator functions
The functions does not execute. It waits until .next() is called and progresses through the function breaking after each yield
var delayGenerator = function* () {
let data1 = yield delay(1000,1);
console.info("Step 1");
let data2 = yield delay(1000,2);
console.info("Step 2");
let data3 = yield delay(1000,3);
console.info("Step 3");
}
var obj = delayGenerator()
obj.next()
// Console Step 1
obj.next()
// Console Step 2
obj.next()
// Console Step 3
Using co
co runs the generator and the then holds the result.
var wrapped = co.wrap(delayGenerator);
wrapped().then( v=>console.log("Got a value:", v));
// Console Step 1
// Console Step 2
// Console Step 3
// Got a value: 6