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');