JSFiddle - React, Tailwind, and code Playground
by shriek
Babel + JSX
//async operation
function timer(cb){
setTimeout(function(){
cb(null, 1);
},2000);
}
//convert async operation to promise
function mm(){
return new Promise(function(res, rej){
timer(function(err, dat){
if(err) return rej(err);
res(dat);
});
});
}
//create generator function
function* async1(){
debugger;
var k = yield mm();
var m = yield mm() + k;
console.log(m);
}
//master flow
function init(itr){
return function recurse(value){
var val = value || null;
var it = itr.next(val);
if(it.done){
return;
}
it.value.then(function(dat){
recurse(dat);
});
};
}
var yolo = init(async1())();
console.log('like gold');